0

我为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;
}
4

1 回答 1

1

基本上没有什么可以阻止随时被杀死。低内存就是一个很好的例子。在您的情况下,我相信 Android 系统认为没有 UI,因此实际上并不需要该服务。为前台的应用程序释放资源是有意义的。

如果您的服务确实需要,那么它应该使用 startForeground 通知用户。

您也可以尝试对 onStartCommand 返回结果进行中继,它可能会帮助您从系统中获取意图。

ps 如果您愿意分享您的要求,我们会更容易提供如何设计服务的建议

于 2013-08-11T19:08:10.177 回答