应用程序自杀后重新启动START_STICKY服务

时间:2017-09-30 22:09:51

标签: java android service

因此,如果我理解正确,START_STICKYSTART_NOT_STICKY之间的区别在于第一个将由系统重新启动,以防它杀死它。

当我使用Process.killProcess(Process.myPid())杀死我的应用程序时,是否有人知道这是否也会发生?或者,如果服务实际上是在外部被杀死,系统是否只重新启动服务,而不是在应用程序进程内?

2 个答案:

答案 0 :(得分:1)

并非总是如此,您无法依靠START_STICKY继续运行服务。更好的方法是使用startForeground继续运行,或者如果要重复特定任务,则在特定时间安排服务。此外,还可以在重新启动手机时进行管理。

Notification.Builder builder = new Notification.Builder(getBaseContext())
                    .setContentTitle(""); 
                    .setContentText("Your content text");
startForeground(1, builder.build());

答案 1 :(得分:1)

是的,在Android系统杀死应用程序后,START_STICKY服务重新启动。

除非您从应用程序组件调用stopService()方法或从服务中调用stopSelf(),否则如果应用程序被终止,服务将重新启动。

但是您始终可以使用startForeground()方法运行服务,在该方法中,您必须在服务的状态栏中显示通知。如果使用此方法创建服务,则您的服务将以与活动活动相同的优先级运行。这意味着您的服务不太可能被停止,并且不需要重新启动。