请教关于Service向Activity广播的问题
Service向Activity广播,Activity中注册和注销广播接收器。
Activity打开的话,广播没问题,如果Activity没有打开,这个时候,Service广播,会不会不可靠?我测试好像没有问题,是不是应该先判断Activity是否打开然后再广播,这样更可靠安全一些?
[解决办法]
发广播的一方不用管,接受广播的一方决定什么情况下收广播。
如果是在Manifest里注册广播接收器,不管apk有没有启动,都可以收到广播。
如果是在代码里动态注册,一定要是apk运行的情况下才能接收到广播。
具体到Activity,如果你在onDestroy里注销广播接收器,Activity在后台没被回收的情况下,都是可以收到广播的。如果在onStop里注销,只要Activity转到后台了,就收不到广播。一般来说,注册和注销广播是在对应的生命周期函数里做。在onCreat或onStart或onResume里这册,就相应的在onDestroy、onStop、onPause里注销。