android 靜態廣播和動態廣播的區別和用法
阿新 • • 發佈:2019-02-02
一、什麼是廣播
BroadcastReceiver是android 系統的四大元件之一,本質上就是一個全域性的監聽器,用於監聽系統全域性的廣播訊息,可以方便的實現系統中不同元件之間的通訊。
程式可以通過呼叫context的sendBroadcast()方法來啟動指定的BroadcastReceiver.
二、廣播的生命週期
BroadcastReceiver生命週期只有十秒左右,如果在onReceive()內做超過十秒的事情,就會報錯。所以廣播中不要執行耗時操作,可以考慮啟動一個Service來完成操作。
三、註冊BroadcastReceiver
廣播分為兩種:靜態註冊和動態註冊
1.靜態註冊
AndroidManifest.xml檔案中配置
特點:常駐形廣播,程式推出後,廣播依然存在。
示例:建立廣播,新建一個類,繼承自BroadcastReceiver,並重寫onReceive()方法,在manifest檔案中註冊該廣播,在傳送廣播。
2.動態註冊
程式碼中動態指定廣播地址並註冊
特點:非常駐型,廣播會跟隨程式的生命週期的結束而結束。
示例:新建內部類,繼承BroadcastReceiver,並重寫onReceive()方法,在onStart()中註冊廣播,在onStop()中解除註冊廣播,在傳送廣播