作者issuemylove (NotLove)
看板AndroidDev
标题[问题] static broadcast receiver几时反注册
时间Mon Nov 14 19:00:55 2016
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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1479121257.A.E46.html
※ 编辑: issuemylove (36.230.18.239), 11/14/2016 19:01:19
1F:→ tn00364477: 是问系统BroadcastReceiver还是LocalBroadcast? 11/14 20:43
我本身是注册 ACTION_POWER_DISCONNECT
算是系统broadcastReceiver
2F:→ ssccg: 1.当你不想再接收/处理那个事件的时候啊... 11/14 21:18
我是希望常驻跟application存活时间一样长,所以我不知道甚麽时候放掉
还是不用放掉
还是说有方法之道application甚麽时候挂掉
3F:→ ssccg: 2.看不懂在问什麽,app画面(activity画面)只跟activity有关 11/14 21:21
4F:→ 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
5F:→ ssccg: 就不用放掉,android结束application通常直接kill process 11/14 21:56
6F:→ ssccg: 2 你的感觉是错的,没有什麽在背景跑就一定要service 11/14 21:57
7F:→ ssccg: receiver有注册、application process活着就会收到 11/14 21:58
8F:→ ssccg: service是用在真的有要在背景执行的工作,不是用来hold变数 11/14 22:04
9F:→ ssccg: 还是注册receiver用的 11/14 22:05
10F:→ ssccg: 如果是需要在app process死掉的情况下还要收到broadcast 11/14 22:05
11F:→ ssccg: 应该把receiver注册在manifest 11/14 22:06
了解!谢谢大大的概念解说!
※ 编辑: issuemylove (36.230.18.239), 11/15/2016 10:09:57