我正在开发一个Android应用程序,我在其中创建前台服务。下面是杀死前台服务的代码:
private void stopForegroundService()
{
Log.d(TAG_FOREGROUND_SERVICE, "Stop foreground service.");
if(downloadAsyncTask!=null) //to stop async task
downloadAsyncTask.cancel(true);
// Stop foreground service and remove the notification.
stopForeground(true);
// Stop the foreground service.
stopSelf();
}
我想在用户从“最近的应用”列表中杀死应用时停止此服务。我在服务类中有方法onDestroy()
和onTaskRemoved()
。从这些函数中调用stopForegroundService()
。
当用户从最近的应用列表中杀死应用时,会调用stopForegroundService()
方法,但服务会继续运行。但是,我可以在异步任务完成时停止服务。
我有以下问题:
我很感激有关此主题的任何建议和想法。谢谢。
修改
调用方法stopForegroundService()
,删除前台服务通知但不停止异步任务。如何解决这个问题?
答案 0 :(得分:0)
好像某些线程仍然没有被正确杀死?
更新
尝试在清单文件
stopWithTask="true"
<service
android:enabled="true"
android:name=".ExampleService"
android:exported="false"
android:stopWithTask="true" />
请参阅此答案。希望有帮助
https://stackoverflow.com/a/53334788/10069542