我为Android编写了小应用程序(服务)并且它大部分时间都在运行,它在启动手机后正确地重新启动,但不时(电话在此时打开)它退出或被杀死。
由于它是被动服务(它等待屏幕锁定开/关事件)我想知道在Android系统中可以用这种方式杀死一个进程,标记为在启动时重新运行的进程不再被激活。
或者换句话说,如何检测/防止意图一直运行的服务被杀死而不再被激活的情况?
仅供记录我可以选择卸载服务; - )。
更新:我的问题是一般的问题,但我牢记这项服务:https://github.com/macias/MissingSettings
关于onStart
与onCommand
问题:
@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;
}
答案 0 :(得分:1)
基本上什么都不能阻止任何时候被杀死。低内存就是很好的例子。在你的情况下,我相信Android系统认为没有用户界面,所以服务并不是真正需要的。为前台的应用程序释放资源是有意义的。
如果您的服务确实需要,那么应该使用带有通知的startForeground来启动用户。
你也可以试试onStartCommand返回结果,它可以帮助你从系统中获得意图。
P.S。只有在您分享您的要求时,我们才能更容易地提供如何设计服务的建议