Android中本地廣播的使用

2021-10-06 04:18:38 字數 900 閱讀 7570

首先你要傳送乙個廣播

/**

* 傳送廣播

*/private void sendloginbroadcast()

這裡的patrolcontract.update_rw_db是乙個常量,用於在茫茫廣播中找到那個你想要的廣播。我是這樣定義的。

public static final string update_rw_db = "com.longway.action.update_rw_db";
這樣傳送我們就寫好了,接著就要寫接收。和eventbus一樣,接收的類中我們先要註冊廣播

/**

* 註冊廣播

*/private void registerupdatebroadcast()

註冊廣播一般在oncreate中呼叫,ondestroy中則呼叫解除廣播的**,**如下

/**

* 取消廣播

*/private void unregisterupdatebroadcast()

接著就是接收器了

private class updaterwbroadcastreceiver extends broadcastreceiver 

}

我們還可以通過intent進行傳值的操作,是不是很簡單。至少我們可以不依賴三方庫操作了。

ps:如果您用的是androidx的環境,如果您這裡想要使用本地廣播,那麼需要新增如下依賴

implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
這裡感謝碼友「空指標的皮皮蝦「補充

Android本地廣播機制

引入本地廣播機制的為了解決安全性的問題,優點 1.正在傳送的廣播不會離開我們的程式,不用擔心機密的資料洩露的問題 2.其他的程式無法將廣播傳送到我們的程式的內部,因此不用擔心安全漏洞的問題 3.傳送本地廣播比傳送全域性廣播高效。使用localbroadcastmanager的getinstance ...

Android自定義傳送本地廣播

以前傳送和接收廣播 有序,無序 都屬於系統全域性廣播,傳送的廣播其他任何程式都能接收到。android中本地廣播機制,只能在程式內部進行傳遞。傳送本地廣播 private localbroadcastmanager localbroadcastmanager localbroadcastmanage...

標準廣播,有序廣播,本地廣播和自定義廣播

標準廣播 廣播發出後所有的廣播接收器幾乎均可同時接收,沒有順序並且無法被截斷 動態註冊 intentfilter intentfilter new intentfilter intentfilter.addaction action registerreceiver 繼承broadcastrecei...