我有一个绑定的前台服务,即使当应用程序从最近的时候被删除的时候,它也应该存活,但是当应用程序被删除时,也可以选择停止服务。那条可选的路就是我遇到麻烦的地方。
如果服务没有设置为前台,停止服务也会导致进程死亡。这是预期的效果:
但是,如果将服务设置为前台,则应用程序进程不会终止:
我试过的是:
onTaskRemoved
override fun onTaskRemoved(rootIntent: Intent) { stopForeground(true) stopSelf() }
stopAppWithTask
<service android:name=".TestService" android:stopWithTask="true"> </service>
override fun onStop() { super.onStop() unbindService(connection) mBound = false override fun onDestroy() { Intent(applicationContext, TestService::class.java).also { intent -> stopService(intent) super.onDestroy() }
onStop
override fun onStop() { super.onStop() mService.stopForeground() unbindService(connection) mBound = false override fun onDestroy() { Intent(applicationContext, TestService::class.java).also { intent -> stopService(intent)