天天看點

Android O不受背景執行限制的隐式廣播

作為Android 8.0(API級别26)背景執行限制的一部分,針對API 26或更高的App無法再在AndroidManifest中隐式注冊BroadcastReceiver。

但是,目前有幾個Broadcast 免于這些限制。

無論應用程式所針對的API級别如何,應用程式都可以繼續為以下廣播注冊監聽器。

注意:即使這些隐式廣播仍然在背景工作,您應該避免為它們注冊Listener。

  • ACTION_LOCKED_BOOT_COMPLETED,ACTION_BOOT_COMPLETED

    免除,因為這些廣播僅在首次啟動時發送一次,并且許多應用需要接收此廣播以安排作業,警報等。

  • ACTION_USER_INITIALIZE,“android.intent.action.USER_ADDED”,“android.intent.action.USER_REMOVED”

    這些廣播受特權權限保護,是以大多數普通應用程式無論如何都無法接收它們。

  • “android.intent.action.TIME_SET”,ACTION_TIMEZONE_CHANGED,ACTION_NEXT_ALARM_CLOCK_CHANGED

    時間應用可能需要接收這些廣播,以便在更改時間,時區或警報時更新警報。

  • ACTION_LOCALE_CHANGED

    僅在語言環境發生變化時發送,這不常見。應用可能需要在區域設定更改時更新其資料。

  • ACTION_USB_ACCESSORY_ATTACHED,ACTION_USB_ACCESSORY_DETACHED,ACTION_USB_DEVICE_ATTACHED,ACTION_USB_DEVICE_DETACHED

    如果應用程式需要了解這些與USB相關的事件,目前還沒有一個很好的替代方案來注冊廣播。

  • ACTION_CONNECTION_STATE_CHANGED,ACTION_CONNECTION_STATE_CHANGED,ACTION_ACL_CONNECTED,ACTION_ACL_DISCONNECTED

    如果應用收到這些藍牙事件的廣播,則使用者體驗不太可能受到影響。

  • ACTION_CARRIER_CONFIG_CHANGED,TelephonyIntents.ACTION _ * _ SUBSCRIPTION_CHANGED,“TelephonyIntents.SECRET_CODE_ACTION”,ACTION_PHONE_STATE_CHANGED,ACTION_PHONE_ACCOUNT_REGISTERED,ACTION_PHONE_ACCOUNT_UNREGISTERED

    OEM電話應用可能需要接收這些廣播。

  • LOGIN_ACCOUNTS_CHANGED_ACTION

    某些應用需要了解登入帳戶的更改,以便他們可以為新帳戶和已更改帳戶設定計劃操作。

  • ACTION_ACCOUNT_REMOVED

    删除帳戶後,可以看到帳戶的應用會收到此廣播。如果這是應用程式需要執行的唯一帳戶更改,則強烈建議應用程式使用此廣播而不是已棄用的LOGIN_ACCOUNTS_CHANGED_ACTION。

  • ACTION_PACKAGE_DATA_CLEARED

    僅在使用者明确清除“設定”中的資料時發送,是以廣播接收器不太可能顯着影響使用者體驗。

  • ACTION_PACKAGE_FULLY_REMOVED

    某些應用可能需要在删除其他包時更新其存儲的資料;對于這些應用程式,沒有很好的替代方案來注冊此廣播。

    注意:其他與包相關的廣播(例如ACTION_PACKAGE_REPLACED)不受新限制的豁免。這些廣播很常見,對豁免廣告有潛在的性能影響。

  • ACTION_NEW_OUTGOING_CALL

    響應使用者撥打電話而采取措施的應用需要接收此廣播。

  • ACTION_DEVICE_OWNER_CHANGED

    這種廣播不經常發送;一些應用需要接收它,以便他們知道裝置的安全狀态已經改變。

  • ACTION_EVENT_REMINDER

    由月曆提供商發送,以向月曆應用釋出活動提醒。由于月曆提供商不知道月曆應用程式是什麼,是以該廣播必須是隐含的。

  • ACTION_MEDIA_MOUNTED,ACTION_MEDIA_CHECKING,ACTION_MEDIA_UNMOUNTED,ACTION_MEDIA_EJECT,ACTION_MEDIA_UNMOUNTABLE,ACTION_MEDIA_REMOVED,ACTION_MEDIA_BAD_REMOVAL

    這些廣播是由于使用者與裝置的實體互動(安裝或删除存儲卷)或作為啟動初始化的一部分(因為可用卷已安裝)而發送的,是以它們不常見,通常由使用者控制。

  • SMS_RECEIVED_ACTION,WAP_PUSH_RECEIVED_ACTION

    SMS收件人應用程式依賴這些廣播。

原文位址