什么可以杀死一项服务?

时间:2013-08-11 18:46:43

标签: android service lifecycle

我为Android编写了小应用程序(服务)并且它大部分时间都在运行,它在启动手机后正确地重新启动,但不时(电话在此时打开)它退出或被杀死。

由于它是被动服务(它等待屏幕锁定开/关事件)我想知道在Android系统中可以用这种方式杀死一个进程,标记为在启动时重新运行的进程不再被激活。

或者换句话说,如何检测/防止意图一直运行的服务被杀死而不再被激活的情况?

仅供记录我可以选择卸载服务; - )。


更新:我的问题是一般的问题,但我牢记这项服务:https://github.com/macias/MissingSettings

关于onStartonCommand问题:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    super.onStartCommand(intent,flags,startId);
    // If we get killed, after returning from here, restart
    return START_STICKY;
}

1 个答案:

答案 0 :(得分:1)

基本上什么都不能阻止任何时候被杀死。低内存就是很好的例子。在你的情况下,我相信Android系统认为没有用户界面,所以服务并不是真正需要的。为前台的应用程序释放资源是有意义的。

如果您的服务确实需要,那么应该使用带有通知的startForeground来启动用户。

你也可以试试onStartCommand返回结果,它可以帮助你从系统中获得意图。

P.S。只有在您分享您的要求时,我们才能更容易地提供如何设计服务的建议