中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

莱芜市| 上蔡县| 宽甸| 德清县| 长宁县| 新巴尔虎左旗| 顺义区| 富裕县| 宣武区| 栖霞市| 武功县| 杭锦旗| 达孜县| 雅安市| 惠来县| 凯里市| 内丘县| 滦平县| 聂荣县| 三河市| 花垣县| 突泉县| 奉贤区| 于都县| 丰顺县| 兴宁市| 罗山县| 公安县| 文成县| 五河县| 清流县| 抚远县| 图木舒克市| 清苑县| 金阳县| 渝北区| 通河县| 三都| 武功县| 三明市| 丰宁|