推广 热搜: 公司  快速  中国  上海    未来  企业  政策  教师  系统 

Android创建杀不死的Service百度手机管家「Android创建杀不死的Service」

   日期:2025-02-16     作者:xy0w9v    caijiyuan   评论:0    移动:http://fabua.ksxb.net/mobile/news/8753.html
核心提示:在Android开发中我们经常会遇到一些特殊的需求需要让我们的服务常驻内存,但是会遇到各种清理软件或者用户在设置中手动停

在Android开发中我们经常会遇到一些特殊的需求需要让我们的服务常驻内存,但是会遇到各种清理软件或者用户在设置中手动停止程序的情况而导致我们的服务被异常的终止掉。虽然没有办法保证绝对的常驻内存,但是通过策略我们还是可以尽最大的可能保证服务不被杀死。

1、应对用户在设置中主动停止的case

这种情况好对付一些,我们首先新建一个TargetService来继承Service

 

然后在Service的onDestory方法中发出广播,然后写一个广播接收器,收到此广播时可以重新启动一个Service

 



如上图所示,用户主动点击停止后,onDestory中的广播会被发出,可以在广播接收器中重新启动service。这种做法也比较流氓,但是对于使用清理软件是不能应对的,因为onDestory可能根本得不到执行,广播也就无从发出。

2、用对百度手机助手、QQ手机管家、360卫士等清理软件

应对清理软件的话不能使用上面的手段了,因为onDestory可能根本得不到执行。所以我们应该考虑使用其他的手段了。我理解的不死的服务不是说服务一刻也不能停止,而是说在服务被杀死后的最短时间内可以使服务重新被启动起来。

2.1使用系统的闹钟定时启动服务

在Service的onCreate方法中设置闹钟定时启动

但是该方法并不是万无一失的,有时候确实会出现不能自启的现象。所以我们还需要增加其他的手段去弥补。没错,就是利用系统广播,我们可以使用静态的Receiver接收相对频繁的广播消息。 

2.2在广播中重启service

我们可以接收比如系统启动、屏幕唤醒等容易发生的广播,当收到广播消息时去重启我们的服务。

 

至此,通过以上几种手段相结合,基本可以保证我们的服务不会出现长时间的停顿。当然以上只是基本初级的代码,具体的情况需要结合实际的项目进行探讨。

最后提供示例的下载地址:点击打开链接

本文地址:http://fabua.ksxb.net/news/8753.html    海之东岸资讯 http://fabua.ksxb.net/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号