STICKY服务重新启动应用程序(负责初始化服务)

时间:2020-02-24 14:01:54

标签: android service

我们扩展了Application类,并将其用于整个应用程序中的某些操作,并且该类也可以运行

Intent serviceIntent = new Intent(getApplicationContext(), Service.class);
startService(serviceIntent);

在它的onCreate中。它进一步绑定到服务,并为不同的活动提供服务。这会触发onStartCommand,意在提供服务。当应用程序进入后台时,该服务将变为前台服务。 但是,在极少数情况下,操作系统会破坏我们的服务,因此会重新启动该服务(由于状态恶劣)。然后,这会无意中触发onStartCommand。它还触发了我们的Application的重新启动,并且它的onCreate运行又重新启动了服务并有意触发onStartCommand

处理此问题的最佳方法是什么?我是否应该无意地忽略onStartcommand(由操作系统启动的那个),并依靠Application重新分配和启动服务?

还有一个问题。从API 26开始,我们不允许在应用程序处于后台状态时启动后台服务(每当应用程序处于后台状态时都需要startForegroundService)。当我们的粘性服务重新启动并重新启动应用程序时,我们确实可以简单地运行startService,而Android不会抱怨以错误的状态运行它。有人对此有见识吗?我希望会引发异常。

0 个答案:

没有答案