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

溫馨提示×

溫馨提示×

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

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

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

南木林县| 霍林郭勒市| 塔河县| 容城县| 大悟县| 通城县| 连云港市| 本溪| 商丘市| 县级市| 苍梧县| 喀喇沁旗| 平塘县| 罗甸县| 鄂尔多斯市| 灵台县| 睢宁县| 峡江县| 万年县| 四会市| 保康县| 若羌县| 岫岩| 宁南县| 祥云县| 芦山县| 平原县| 海南省| 宁海县| 安福县| 山丹县| 江都市| 漠河县| 关岭| 富顺县| 含山县| 壶关县| 华宁县| 阿鲁科尔沁旗| 彝良县| 拉孜县|