1. 程式人生 > >Android知識備忘

Android知識備忘

開始學習Android開發了,這裡記錄一下學習過程中個人覺得重要的知識點;

LayoutInflater 

要點:

1、對於一個沒有被載入或者想要動態載入的介面,都需要使用LayoutInflater.inflate()來載入;用來找 res/layout下的 xml 佈局檔案,並且例項化;

2、對於一個已經載入的介面(例如setcontentview後),就可以使用findViewById()方法來獲得其中的介面元素;是找具體 xml 佈局檔案中的具體 widget 控制元件(如:Button、TextView 等)。

活動的啟動模式

通過給<activity>標籤指定Android:launchmode屬性選擇啟動模式

1、standard預設啟動模式:每次啟動建立一個該活動的新的例項

2、singsingleTop:若棧頂已經是該活動則再次啟動直接使用棧頂的例項

3、singTask:若棧內有該活動則該活動之上所有活動出棧使用該活動

4、singleInstance:啟動一個新的返回棧來管理這個活動

RecyclerView的簡單使用

1、建立ViewHolder

2、建立Adapter實現3個方法

3、設定RecyclerView

廣播的兩種型別

1、標準廣播:完全非同步執行的廣播

2、有序廣播:同步執行的廣播,可被截斷

AsyncTask

通過呼叫execute方法開始處理非同步任務.相當於執行緒中的start方法.

  onPreExecute()                              //此方法會在後臺任務執行前被呼叫,用於進行一些準備工作    doInBackground(Params… params) //此方法中定義要執行的後臺任務,在這個方法中可以呼叫publishProgress來更新任務進度(publishProgress內部會呼叫onProgressUpdate方法)    onProgressUpdate(Progress… values) //由publishProgress內部呼叫,表示任務進度更新    onPostExecute(Result result)              //後臺任務執行完畢後,此方法會被呼叫,引數即為後臺任務的返回結果    onCancelled()                                   //此方法會在後臺任務被取消時被呼叫

以上方法中,除了doInBackground方法由AsyncTask內部執行緒池執行外,其餘方法均在主執行緒中執行。

Notification 

private void sendNotification() {
   //獲取NotificationManager例項
   NotificationManager notifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
   //例項化NotificationCompat.Builde並設定相關屬性
   NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
           //設定小圖示
           .setSmallIcon(R.mipmap.icon_fab_repair)
           //設定通知標題
           .setContentTitle("最簡單的Notification")
           //設定通知內容
           .setContentText("只有小圖示、標題、內容")
           //設定通知時間,預設為系統發出通知的時間,通常不用設定
           //.setWhen(System.currentTimeMillis());
   //通過builder.build()方法生成Notification物件,併發送通知,id=1
   notifyManager.notify(1, builder.build());
}

事件處理機制

1、基於監聽的事件處理:例如過載onclick方法

2、基於回撥的事件處理:例如自定義Button類過載onKeyDown方法,然後在佈局檔案內引入該自定義元件