android应用进程被杀死后,如何接收得到广播

android应用进程被杀死后,如何接收得到广播,第1张

在具有root权限的进程管理器清理后,便相当于系统中的强制停止了,广播接收器等自然都不能使用了。为了最大可能地防止被这类有root权限的进程管理器杀掉,可以在程序退出的时候杀掉自己的进程,这样自己的广播接收器还是可以使用的,但那些进程管理器就找不到我们的进程了,因为已经被我们自己杀死了。但是在广播接收器收到广播后,我们的应用里程就会再被创建,因此在处理完广播后要再次杀死我们自己的进程。

推送是每一个APP必不可少的一部分,这几天正好在做这一块,所以总结一下遇到的一些问题。在APP被杀死的情况下,对应的推送service也一起被杀死了,这个时候我们怎么能够收到后台的推送呢?

解决办法很简单,但是也特别粗暴,在mainfest中给application设置这个属性android:persistent="true",看意思我们就知道,持续的,一直的,这样的话,app是杀不死的,推送肯定有可以收到了。但是强烈建议不要这样做,因为这样就像某些流氓软件一样了,毕竟我们做个应用出来,也不想让别人以为我们的是流氓软件吧。好了,重头戏来了,最后一种方法,也是我比较推荐的一种。用Broadcast Receivers。我们都知道,推送实际上应用的就是广播,这里我们自定义一个广播接收器,让它继承系统的Broadcast Receivers,然后复写它的onReceive方法,在onReceive里面开启推送的服务。最后在mainfest中去注册我们自定义的广播接收器。这里一定要用静态注册的广播接收器。如果是动态注册的,APP被杀死后,广播接收器也会被杀死。下面我已极光推送为例。

不知道第三方应用是怎么关闭应用的。3.1以后,如果你在应用信息中强行停止了应用,那么你的应用的状态就是STOPPED,必须等用户打开你的app后,才能接受到广播。3.1之前就没这个限制。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12063229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存