看板 AndroidDev 關於我們 聯絡資訊
1. 想請問在application的onCreate中註冊一個broadcastReceiver 要在哪個時間點作 unregister反註冊呢? 或者不用反註冊也沒關係? broadcast在應用中都是一直要存在的,不用反註冊沒關係嗎? 2. 另外問個問題,我app一開啟會有需要永久存在的變數 (變數裡面有註冊上述的broadcastReceiver) 我把它宣告成static好,還是把它宣告在service內讓它永久存在好呢? 宣告成static broadcast receiver一樣會都收的到廣播嗎? 如果是在service內,當service被回收就功能失效了QQ 可是又怕static方法會收不到廣播(跳出app畫面外的話) 懇請大大們賜教,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.18.239 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1479121257.A.E46.html ※ 編輯: issuemylove (36.230.18.239), 11/14/2016 19:01:19
tn00364477: 是問系統BroadcastReceiver還是LocalBroadcast? 11/14 20:43
我本身是註冊 ACTION_POWER_DISCONNECT 算是系統broadcastReceiver
ssccg: 1.當你不想再接收/處理那個事件的時候啊... 11/14 21:18
我是希望常駐跟application存活時間一樣長,所以我不知道甚麼時候放掉 還是不用放掉 還是說有方法之道application甚麼時候掛掉
ssccg: 2.看不懂在問什麼,app畫面(activity畫面)只跟activity有關 11/14 21:21
ssccg: activity在不在最上層跟receiver沒有關係 11/14 21:22
想要app在背景時,也能夠藉由寫code的方式將receiver註冊並接收訊息 因為是背景我感覺需要用service在背景跑並註冊receiver 還是說我當初用application註冊該receiver就可以達到想要的效果呢? (我的app在背景,也可以讓receiver收到訊息) ※ 編輯: issuemylove (175.181.185.73), 11/14/2016 21:53:59
ssccg: 就不用放掉,android結束application通常直接kill process 11/14 21:56
ssccg: 2 你的感覺是錯的,沒有什麼在背景跑就一定要service 11/14 21:57
ssccg: receiver有註冊、application process活著就會收到 11/14 21:58
ssccg: service是用在真的有要在背景執行的工作,不是用來hold變數 11/14 22:04
ssccg: 還是註冊receiver用的 11/14 22:05
ssccg: 如果是需要在app process死掉的情況下還要收到broadcast 11/14 22:05
ssccg: 應該把receiver註冊在manifest 11/14 22:06
瞭解!謝謝大大的概念解說! ※ 編輯: issuemylove (36.230.18.239), 11/15/2016 10:09:57