[問題] static broadcast receiver幾時反註冊

看板AndroidDev作者 (NotLove)時間9年前 (2016/11/14 19:00), 9年前編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
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

11/14 20:43, , 1F
是問系統BroadcastReceiver還是LocalBroadcast?
11/14 20:43, 1F
我本身是註冊 ACTION_POWER_DISCONNECT 算是系統broadcastReceiver

11/14 21:18, , 2F
1.當你不想再接收/處理那個事件的時候啊...
11/14 21:18, 2F
我是希望常駐跟application存活時間一樣長,所以我不知道甚麼時候放掉 還是不用放掉 還是說有方法之道application甚麼時候掛掉

11/14 21:21, , 3F
2.看不懂在問什麼,app畫面(activity畫面)只跟activity有關
11/14 21:21, 3F

11/14 21:22, , 4F
activity在不在最上層跟receiver沒有關係
11/14 21:22, 4F
想要app在背景時,也能夠藉由寫code的方式將receiver註冊並接收訊息 因為是背景我感覺需要用service在背景跑並註冊receiver 還是說我當初用application註冊該receiver就可以達到想要的效果呢? (我的app在背景,也可以讓receiver收到訊息) ※ 編輯: issuemylove (175.181.185.73), 11/14/2016 21:53:59

11/14 21:56, , 5F
就不用放掉,android結束application通常直接kill process
11/14 21:56, 5F

11/14 21:57, , 6F
2 你的感覺是錯的,沒有什麼在背景跑就一定要service
11/14 21:57, 6F

11/14 21:58, , 7F
receiver有註冊、application process活著就會收到
11/14 21:58, 7F

11/14 22:04, , 8F
service是用在真的有要在背景執行的工作,不是用來hold變數
11/14 22:04, 8F

11/14 22:05, , 9F
還是註冊receiver用的
11/14 22:05, 9F

11/14 22:05, , 10F
如果是需要在app process死掉的情況下還要收到broadcast
11/14 22:05, 10F

11/14 22:06, , 11F
應該把receiver註冊在manifest
11/14 22:06, 11F
瞭解!謝謝大大的概念解說! ※ 編輯: issuemylove (36.230.18.239), 11/15/2016 10:09:57
文章代碼(AID): #1OAPbfv6 (AndroidDev)