亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

StickyBroadcast

發布時間:2020-06-30 14:18:23 來源:網絡 閱讀:541 作者:xiaoyusong 欄目:開發技術

   今天做項目時遇到了一個問題是同一個項目中兩個不同的activity之間想要進行事件監聽,也就是A_activity里面有了操作之后,另一個B_activity里面要馬上做出改變。如果想要監聽,就必須得到那個activity的對象,但顯然這是沒法做到的。

   首先想到了四大組件中的廣播,通過發送廣播sendBroadcast()就可以讓兩個毫無關系的activity產生監聽聯系。但是寫好代碼運行之后發現沒有達到預想中的效果,分析后就發現不是代碼寫錯了,而是發送普通的廣播根本無法達到效果。因為,廣播是在B_activity的oncreate()方法中注冊的,也就是說只有進入了B界面的時候廣播才能被注冊,而這時候A界面的廣播明顯已經發送完成。sendBroadcast()也叫及時廣播,也就是只有在發送廣播時已經注冊了的廣播接受者才能收到廣播。

   這時候想起聽過但是沒用過的sendStickyBroadcast()(不知道是否可以翻譯為粘性廣播?)。這個廣播的特性就在于它會一直保留,不管是在發送前注冊的還是發送后注冊的接收者都可以收到廣播。用法則和sendBroadcast()一樣。試驗過后發現果然可行。

   接著,又一個問題來了,運行發現每進入到B_activity都能收到該廣播,但我只需要收到一次就可。于是在想,根據這種廣播的特性,應該有提供消除廣播的方法吧。在網上搜索之后發現果然有可以消除的方法,也就是:removeStickyBroadcast(intent),通過括號中的參數intent的action來區分要消除的是哪個廣播。

   這樣,在oncreate()或onStart()方法中注冊廣播接收者,在onStop()方法中取消注冊廣播接收者并移除之前發送的粘性廣播即可達到想要的效果。

向AI問一下細節

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

AI

南召县| 德庆县| 桂阳县| 定日县| 陇川县| 筠连县| 巴林右旗| 彰化县| 西昌市| 信丰县| 曲周县| 东兴市| 常山县| 邵东县| 长顺县| 白沙| 延吉市| 西吉县| 观塘区| 乌拉特前旗| 静安区| 渑池县| 衡山县| 蚌埠市| 宜春市| 睢宁县| 英吉沙县| 云阳县| 南阳市| 乌兰浩特市| 固阳县| 札达县| 清远市| 杭锦旗| 名山县| 涿州市| 临桂县| 苏尼特左旗| 班戈县| 宁德市| 广东省|