Android 開發學習筆記 00
Resoureces.
參考這裡。
在Java原始檔中使用R物件。在xml檔案中是用@引用。
Activities
參考這裡。
以上所有函式都可以重寫。
在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提供的。