1. 程式人生 > >Android 開發學習筆記 00

Android 開發學習筆記 00

Resoureces.

參考這裡

在Java原始檔中使用R物件。在xml檔案中是用@引用。

Activities

參考這裡

The flow chart of activity life cycle

以上所有函式都可以重寫。

在Activity的onCreate()函式中,使用setContentView()函式來指定一個layout。

兩個關鍵類:

import android.app.Activity;

import android.util.Log;

寫除錯日誌:

Log.d(string0, string1);

Service

一個service可以對應一個class,從android.app包的Service類派生。

需要overide Service類的某些方法來實現具體的功能。

在manifest檔案中需要新增必要的<service>標籤。

使用startService()和stopService函式來啟動和終止service。

Broadcast Receivers

events 和 intents。

Create a broadcast receiver,從BroadcastReceiver類派生,override onReceive方法。

register a broadcast receiver,在AndroidManifest.xml新增一個receiver標籤。

<receiver android:name="MyReceiver">
   
      <intent-filter>
         <action android:name="android.intent.action.BOOT_COMPLETED">
         </action>
      </intent-filter>
   
   </receiver>

目前參考的API22,所有的Broadcast intents的列表位於

/home/yaoyu/Android/Sdk/platforms/android-22/data/broadcast_actions.txt

Content provider

一個content provider從 ContentProvider類派生而來。

訪問一個content provider時使用URI。URI的構成如下:

content://<authority>/<data_type>/<id>

例如

content://contacts/people/5

需要Override的方法包括:onCreate(), query(), inset(), delete(), update(), 和getType()

URI和content provider的使用還是不太明白,有待以後詳細學習。

Fragment

可以理解為子activity的概念,可以複用,一個activity可以使用多個fragment。

建立fragment時從Fragment類派生,並且在activity的layout中新增一個<fragment>元素。

fragment使得activity分成了不同部分,這些部分有自己的layout,event和life cycle。這種實現方案有利於程式的activity根據物理裝置的變化發生相應的調整。

下圖是fragment的life cycle,很多member function都是可以override的。這幅圖同樣出自這裡


Intents and Filters

intent可以理解為一個事件後者操作(action),一個filter可以理解為對不同action,category和data的響應。一個intent若要pass一個filter,那麼這個intent的category和data type要以一定形式符合filter的描述。

filter不可以沒有action。

建立一個Intent時,需要指定一個action,並且給出這個action的資料。intent-filter定義在activity中,需要在manifest檔案中描述。每增加一個intent-filter,android系統似乎都會記錄,當有合適的intent出現並且有多個filter符合條件時,android系統會詢問使用者使用那個activity執行。這些activity可能是一個app提供的,也可是不同的app提供的。