91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中廣播消息機制的實踐是怎樣的

發布時間:2022-01-14 09:44:41 來源:億速云 閱讀:129 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關Android中廣播消息機制的實踐是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Android系統有一套廣播消息機制,方便進行每個應用程序之間的消息通知。而且廣播接受者作為Android四大組件之一,經常被使用到。我也接觸到廣播消息機制,因此有必要對自己所學的知識梳理整理下。

0x01 廣播分類
  • 標準廣播 
    標準廣播是一種完全異步執行的廣播。這種廣播是一種一對多的廣播,效率比較高。當廣播被發出之后,所有的廣播接受者幾乎會在同一時間收到消息。

  • 有序廣播 
    有序廣播是一種同步執行的廣播。這種廣播顧名思義是有接受順序的廣播。當廣播被發出之后,只有一個廣播接受者會收到消息。因此,該廣播是一對一的廣播。

0x02 注冊廣播
  • 動態注冊 
    通過Java代碼注冊。廣播接受者可以自由地對自己感興趣的廣播進行注冊,并內部處理響應廣播的邏輯。這種方式雖然靈活,當也有一定的局限性。它要求應用程序在運行時才能進行。

  • 靜態注冊 
    在AndroidManifest.xml中注冊。這種方式可以在應用程序還沒有啟動就注冊接受廣播了。

動態注冊經典代碼Android中廣播消息機制的實踐是怎樣的
靜態注冊經典代碼 

在AndroidManifest文件Application節點內添加如下代碼:Android中廣播消息機制的實踐是怎樣的
該廣播接受者名為MyBroadcastReceiver。其有兩個屬性:enabled屬性表示是否啟用這個廣播接受者;exported屬性表示是否允許這個廣播接受者接受本程序以外的廣播。

0x03 靜態注冊廣播與動態注冊廣播的區別
  • 靜態注冊即使App退出,仍然能接收到廣播

  • 動態注冊時,當Activity退出,就接收不到廣播了

  • 但是靜態注冊即使App退出,仍然能接收到廣播這種說法自Android 3.1開始有可能不再成立。

說明: 
Android 3.1開始系統在Intent與廣播相關的flag增加了參數: 
1) FLAG_INCLUDE_STOPPED_PACKAGES:包含已經停止的包(停止:即包所在的進程已經退出) 
2) FLAG_EXCLUDE_STOPPED_PACKAGES:不包含已經停止的包 
自Android3.1開始,系統本身增加了對所有App當前是否處于運行狀態的跟蹤。在發送廣播時,不管是什么廣播類型,系統默認直接增加了值為FLAG_EXCLUDE_STOPPED_PACKAGES的flag,導致即使是靜態注冊的廣播接收器,對于其所在進程已經退出的App,同樣無法接收到廣播。 
因此對于系統廣播,由于是系統內部直接發出的,無法更改此intent的flag值。因此,從3.1開始對于靜態注冊的接收系統廣播的BroadcastReceiver,如果App進程已經退出,將不能接收到廣播。 
但是對于自定義的廣播,可以通過覆寫此flag為FLAG_INCLUDE_STOPPED_PACKAGES,使得靜態注冊的BroadcastReceiver,即使所在App進程已經退出,也能接收到廣播,并會啟動應用進程,但此時的BroadcastReceiver是新建的。 
實現代碼為:

Android中廣播消息機制的實踐是怎樣的
在3.1以前,不少App可能通過靜態注冊方式監聽各種系統廣播,以此進行一些業務上的處理(如即使App已經退出,仍然能接收到,可以啟動service等..)。 

3.1后,靜態注冊接受廣播方式的改變,將直接導致此類方案不再可行。于是,通過將Service與App本身設置成不同的進程已經成為實現此類需求的可行替代方案。

0x04 發送廣播
  • 發送標準廣播

Android中廣播消息機制的實踐是怎樣的

  • 發送有序廣播

Android中廣播消息機制的實踐是怎樣的
需要在AndroidManifest文件中通過設定廣播接受者的intent-filter節點的priority屬性來確定接受廣播的順序。 

如果想把廣播截斷,可以在onReceive()中調用abortBoradcast()

0x05 使用本地廣播

為了讓廣播只在應用程序中傳遞,這就需要LocalBroadcastManager大顯身手。我們通過代碼來熟悉。

Android中廣播消息機制的實踐是怎樣的
0x06 廣播的最佳實踐

廣播可以應用于強制下線或者被擠下線的邏輯操作

上述就是小編為大家分享的Android中廣播消息機制的實踐是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溆浦县| 城步| 读书| 齐河县| 浠水县| 外汇| 洛扎县| 花垣县| 分宜县| 康马县| 孟津县| 沧源| 泰州市| 加查县| 邵东县| 从江县| 高清| 虎林市| 卫辉市| 尉氏县| 象州县| 连平县| 衡山县| 铅山县| 镇赉县| 沙湾县| 喜德县| 宜昌市| 平潭县| 沽源县| 宁强县| 新乡县| 文安县| 贡嘎县| 陈巴尔虎旗| 平舆县| 荃湾区| 万盛区| 玛纳斯县| 湖北省| 疏附县|