Code Bye

如何让后台程序永远运行?

 

我的后台服务程序,不知道是什么原因,中途有停止运行的现象,并且无法检测这种现象,因为一启动软件它就正常了,但是查询前面的数据发现它根本没有运行。

我的后台程序是检测经纬度的。


4分
弄个独立进程Service,在Service里面开线程 无线循环做你的任务。
另外再注册个广播 当网络变化和手机启动的时候 启动你的Service,这样Service一般都是在运行中的,除非被360等软件杀掉。
有的手机厂商系统里面 把后台的Service禁止了或者不同的效果,需要多测试在不同Android手机上。

4分
这个要分设备,某些设备对于后台服务限制比较严格,可能会熄屏某个时间长度之后就会停止非系统级服务的响应,来达到省电的目的。

4分
后台开个service,程序就算是关了,service也一直在运行
还有,不同型号的手机对后台管理的不太一样
比如魅族对后台管理的就比较严格,这样做貌似没有用
但是好像只有这一种方法

4分
这个是因为Service被杀死的缘故
如何做个不被杀死的service呢?

4分
在service的destroy方法里加入重启service的步骤试试

4分
在 Service 的 onStartCommand 里设置返回值,为 Stick 还是什么的,他就会默认内存不足杀死后如果后来有资源就自动重启了

4分
如果是商业app,就不应该想着总是让自己的程序不被杀死永远运行,每个app都这么做,用户的手机就成了垃圾场了。
如果是写着自己玩的不发布的app倒无所谓。

8分
比较靠谱的思路是,有两个服务相互监视,一个死了另外一个就负责重新启动被杀死的服务。

4分
service杀死可以设置自动重启,或通过action来触发启动
引用 9 楼 svenwang 的回复:

比较靠谱的思路是,有两个服务相互监视,一个死了另外一个就负责重新启动被杀死的服务。

网上介绍的很多办法都试过了,发现并不是很有效。

这个方法比较靠谱,不过应该要三个服务,来个石头剪刀布。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何让后台程序永远运行?