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方法,然後在佈局檔案內引入該自定義元件