一.Service
Service是一種可以在後臺長期運行且不提供用戶UI的程序,常用來處理一些耗時操作性操作,如網絡傳輸或播放音樂。
2.Service可以分爲有限生命和無限生命,當系統資源不足是,Activity可能被殺掉,但Service不會。
3.啓動Service需要在清單文件中聲明<Service>標籤。啓動Service有兩種方式:
Context.startService()【不綁定,無限生命】和Context.bindService()【綁定,有限生命】.
a.startService()調用onstartCommand()方法,銷燬時直接調用onDestroy()方法。
b.bindService()調用onBind()返回客戶端的一個IBinder接口,當沒有任何對象綁定Service時, Service會被系統銷燬。
二.BroadcastReceiver
廣播是Android系統應用程序之間通信的手段,當有特定事件發生時,如來電、來短信、電池電量變化時,Android系統都會產生特定的Intent對象並自動進行廣播,而針對特定事件註冊BroadcastReceiver可以接收到這些廣播,並獲取到Intent對象中的數據進行處理。
在廣播Intent對象時可以指定用戶權限,只有獲得了相應權限的BroadcastReceiver才能接收並處理相應的廣播。
一個BroadcastReceiver對象只有在被調用了onReceive()時纔有效,當從該函數返回時,該對象就無效了,生命週期也就結束了。
不能生成ui,通過NotificationManager來通知用戶有事情發生。
實例:
前面的檢測手機電量實例。