1. 程式人生 > >android 靜態廣播和動態廣播的區別和用法

android 靜態廣播和動態廣播的區別和用法

一、什麼是廣播

BroadcastReceiver是android 系統的四大元件之一,本質上就是一個全域性的監聽器,用於監聽系統全域性的廣播訊息,可以方便的實現系統中不同元件之間的通訊。

程式可以通過呼叫context的sendBroadcast()方法來啟動指定的BroadcastReceiver.

二、廣播的生命週期

BroadcastReceiver生命週期只有十秒左右,如果在onReceive()內做超過十秒的事情,就會報錯。所以廣播中不要執行耗時操作,可以考慮啟動一個Service來完成操作。

三、註冊BroadcastReceiver

廣播分為兩種:靜態註冊和動態註冊

1.靜態註冊

AndroidManifest.xml檔案中配置

特點:常駐形廣播,程式推出後,廣播依然存在。

示例:建立廣播,新建一個類,繼承自BroadcastReceiver,並重寫onReceive()方法,在manifest檔案中註冊該廣播,在傳送廣播。

2.動態註冊

程式碼中動態指定廣播地址並註冊

特點:非常駐型,廣播會跟隨程式的生命週期的結束而結束。

示例:新建內部類,繼承BroadcastReceiver,並重寫onReceive()方法,在onStart()中註冊廣播,在onStop()中解除註冊廣播,在傳送廣播