我有一个在后台运行的服务。如果系统在内存不足的情况下杀死该服务也没关系,但是,我不希望系统重新启动该服务。
因此,为了做到这一点,我从 onStartCommand 返回 START_NOT_STICKY 标志,如下所示:
public int onStartCommand(Intent intent, int flags, int startId) {
// do stuff here
return START_NOT_STICKY;
}
然而,当我故意打开一堆应用程序来创建内存不足的情况时,我在日志中看到了这一点:
Process com.myapp (pid 3960) has died.
Scheduling restart of crashed service com.myapp/.MyService in 5000ms
Low Memory: No more background processes.
...
Start proc com.myapp for service com.myapp/.MyService: pid=4905 uid=10031 gids={3003, 1015}
所以我的进程在不应该的时候被重新启动。为什么是这样?根据文档 START_NOT_STICKY 不应允许重新启动服务。还有其他方法可以阻止服务重新启动吗?或者我可以知道我的服务何时重新启动吗?
Thanks
你有没有看过意向服务 http://developer.android.com/reference/android/app/IntentService.html?启动,执行需要执行的操作,然后自行停止。我的运气比较好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)