我使用startForeground使我的服务在后台“持久”,防止被操作系统杀死。
我在主活动的onDestroy方法中调用stopForeground和stopService来移除服务。
问题在于,当我在最近使用的应用程序中滑动关闭应用时,调试会话仍在运行,而在“正常”情况下(不使用startForeground),调试会话将正确终止。
使用adb shell可以确认应用程序仍在运行。
startForeground创建了一个“特殊”的运行线程,无法通过简单停止前台及服务来停止该线程。
请问有什么思路吗?
stopWithTask
。 - AstrogatorstopWithTask=true
后,即使应用被移除在内存中的任务列表中,onTaskRemoved()
也不会被调用。(参考链接:https://developer.android.com/reference/android/app/Service#onTaskRemoved(android.content.Intent)) - Josselin