我正在尝试实现前台服务,并试图了解它如何处理崩溃。
我创建了一个简单的服务,如下所示:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
checkRunningAndStartForeground();
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onCreate() {
super.onCreate();
crashAfterTenSeconds();
}
@Override
public void onDestroy {
super.onDestroy();
if(isRunning) {
isRunning = false;
stopForeground(true);
}
}
发生的情况是服务在前台启动,然后按预期崩溃。它是由系统安排的重新启动。正如预期的那样,它重新启动然后再次崩溃。之后,它不会被安排重新启动。
我的问题是,为什么它会重新启动一次,而不是两次?我希望它在每次崩溃后继续重新启动。
我担心的是,如果我的应用程序正在运行,并且以某种方式崩溃了两次,那么它将永远不会重新启动。
比如一开始就崩溃一次,运行一两天再崩溃,是不是就不会再回来了?