因此,如果我理解正确,START_STICKY
和START_NOT_STICKY
之间的区别在于第一个将由系统重新启动,以防它杀死它。
当我使用Process.killProcess(Process.myPid())
杀死我的应用程序时,是否有人知道这是否也会发生?或者,如果服务实际上是在外部被杀死,系统是否只重新启动服务,而不是在应用程序进程内?
答案 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()方法运行服务,在该方法中,您必须在服务的状态栏中显示通知。如果使用此方法创建服务,则您的服务将以与活动活动相同的优先级运行。这意味着您的服务不太可能被停止,并且不需要重新启动。