廣播機制 靜態註冊

2021-07-11 06:12:28 字數 1288 閱讀 5578

動態註冊的廣播接收器可以自由的控制註冊與登出,在靈活方面有很大的優勢,但是,它也存在著乙個缺點,就是必須要在程式啟動後才能夠接收到廣播,因為註冊的邏輯是寫在oncreate()裡的。那麼,有什麼方法可以讓程式在未啟動的情況下就能接收到廣播那?這就需要靜態註冊

<?xml version="1.0" encoding="utf-8"?>

xmlns:android=""

android:name="android.permission.receive_boot_completed"/>

android:allowbackup="true"

android:icon="@mipmap/ic_launcher"

android:supportsrtl="true"

android:name=".mainactivity"

android:name="android.intent.action.main" />

android:name="android.intent.category.launcher" />

intent-filter>

activity>

android:name=".broadcast.mybroadcast1">

android:name="android.intent.action.boot_completed"/>

intent-filter>

receiver>

manifest>

標籤中,設定了乙個新的標籤< receiver>,所有的靜態廣播的註冊都是在這裡進行註冊的。它的用法和activity的註冊類似,也是通過指定android:name來指定具體註冊哪乙個廣播接收器,然後在 < intent-filter>中加入我們想要接收的廣播就行了。同樣,監聽系統開機廣播也要宣告許可權,

android.permission.receive_boot_completed這樣在再次開機後,mybroadcast1就會接收到這條開機廣播,並處理相應的事情。

需要注意的是:在廣播接收器的onreceiver()方法中,不要新增過多的邏輯或者任何耗時的操作,因為在廣播接收器中是不允許開啟執行緒的,當onreceive()方法執行了較長的時間而沒有結束的時候,程式就會報錯。因此,廣播接收器通常扮演者開啟程式其他元件的角色,比如建立乙個狀態列通知,或者啟動乙個服務等。

廣播的動態靜態註冊

原文 兩者及其接收廣播的區別 1.動態註冊的廣播 永遠要快於 靜態註冊的廣播,不管靜態註冊的優先順序設定的多高,不管動態註冊的優先順序有多低 2.動態註冊廣播不是 常駐型廣播 也就是說廣播跟隨activity的生命週期。注意 在activity結束前,移除廣播接收器。靜態註冊是常駐型 也就是說當應用...

靜態 動態註冊廣播的區別,靜態動態廣播區別

廣播接收器註冊一共有兩種形式 靜態註冊和動態註冊.兩者及其接收廣播的區別 1.動態註冊的廣播永遠要快於靜態註冊的廣播,不管靜態註冊的優先順序設定的多高,不管動態註冊的優先順序有多低 2.動態註冊廣播不是常駐型廣播,也就是說廣播跟隨activity的生命週期。注意 在activity結束前,移除廣播接...

靜態 動態註冊廣播的差別

廣播接收器註冊一共同擁有兩種形式 靜態註冊和動態註冊.兩者及其接收廣播的差別 1.動態註冊的廣播 永遠要快於 靜態註冊的廣播,無論靜態註冊的優先順序設定的多高,無論動態註冊的優先順序有多低 2.動態註冊廣播不是 常駐型廣播 也就是說廣播尾隨activity的生命週期。注意 在activity結束前,...