1.Android基本知識點
1、四大組件是什麽與它們的生命周期(及Fragment)。
Activity: 通過Intent來進行通信,intent中包含動作和動作的數據
BroadcastReceive:可以在廣播中啟動一個Activity或者Service來響應接收到的信息,或者用NotificationManager 來通知用戶,可以對外部數據進行過濾,只對感興趣的事件進行響應。
普通廣播:Context.sendBoradCast(intent)
有序廣播:Context.sendOrderBroadcast(intent,receiverPermission),receiverPermission決定廣播的級別,值在-1000到1000之間,值越大,發送的優先級越高。接收的廣播可以通過intentfilter中的priority設置優先級。abortBroadcast()可以截斷廣播。
異步廣播:通過Context.sendStickyBroadcast(intent)發送。還有sendStickyOrderedBroadcast(intent, resultReceiver, scheduler, initialCode, initialData, initialExtras)方法,該方法具有有序廣播的特性也有異步廣播的特性;發送異步廣播要: <uses-permission android:name="android.permission.BROADCAST_STICKY" />權限,接收並處理完Intent後,廣播依然存在,直到你調用removeStickyBroadcast(intent)主動把它去掉。
監聽廣播Intent的步驟:1.定義一個類繼承BroadCastReceiver,然後重寫onReceive()方法。
2.靜態註冊,直接在清單文件中註冊或者動態註冊。代碼中registerReceiver(receive,intentfilter),註銷unregisterReceiver(receive)。
廣播的生命周期只有10s,如果做了耗時的操作,會導致ANR。
Service:使用方法:1.繼承Service,清單文件中註冊。通過startService()或者bindService()方法啟動。
通過startService()方法啟動的服務和調用者沒有關系,即使調用者關閉了,服務仍然運行想停止服務要調用Context.stopService(),此時系統會調用onDestory(),使用此方法啟動時,服務首次啟動系統先調用服務的onCreate()-->onStart(),如果服務已經啟動再次調用只會觸發onStart()方法
使用bindService()啟動的服務與調用者綁定,只要調用者關閉服務就終止,使用此方法啟動時,服務首次啟動系統先調用服務的onCreate()-->onBind(),如果服務已經啟動再次調用不會再觸發這2個方法,調用者退出時系統會調用服務的onUnbind()-->onDestory(),想主動解除綁定可使用Contex.unbindService(),系統依次調用onUnbind()-->onDestory();
ContentProvider:其他應用可以通過ContentResolver類(見ContentProviderAccessApp例子)從該內容提供者中獲取或存入數據
1.Android基本知識點