Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用任务管理器关闭应用程序时停止Android服务_Android_Service - Fatal编程技术网

使用任务管理器关闭应用程序时停止Android服务

使用任务管理器关闭应用程序时停止Android服务,android,service,Android,Service,我正在开发一个应用程序,它有一个前台服务,可以长时间播放音频 我不希望Android操作系统在后台运行时终止我的服务,但是如果应用程序通过任务管理器手动关闭,我希望停止服务 我的应用程序的当前行为是,在任务管理器中关闭应用程序时,服务将继续运行 我注意到Spotify达到了预期的效果,它是如何实现的?我认为您可以调用stopSelf()。显然,元素中还有一个文档严重不足的功能,当任务从最近的任务列表中停止时,它可以自动停止服务 请注意,我还没有尝试过这两种方法,所以YMMV。谢谢Commonwa

我正在开发一个应用程序,它有一个前台服务,可以长时间播放音频

我不希望Android操作系统在后台运行时终止我的服务,但是如果应用程序通过任务管理器手动关闭,我希望停止服务

我的应用程序的当前行为是,在任务管理器中关闭应用程序时,服务将继续运行


我注意到Spotify达到了预期的效果,它是如何实现的?

我认为您可以调用
stopSelf()
。显然,
元素中还有一个文档严重不足的功能,当任务从最近的任务列表中停止时,它可以自动停止服务


请注意,我还没有尝试过这两种方法,所以YMMV。

谢谢Commonware,这似乎很有效!您是否知道有任何adb shell命令会模拟操作系统破坏活动?我不愿意在不确定如果操作系统终止活动,服务不会停止的情况下接受答案。我试过使用
adb shell am force stop com.my.app.package
,但这也会终止该服务。@gnawatyourpaw:对不起,我不知道一个shell命令可以模拟将应用程序从最近的任务列表中删除,这正是您真正想要的。可能有这样的命令。我通常只是将应用程序从最近的任务列表中删除。:-)在Commonware中,我实际上是在寻找一个命令来模拟操作系统自动终止应用程序,而不是从最近的应用程序中删除它。但是,我转到了开发者选项->不要保留活动,在onDestroy()中添加了一条日志消息,并确定您的答案实际上是正确的。它仅在用户手动结束任务时终止服务,而不是在操作系统销毁活动时。所以,再次感谢你的精彩回答。如果你从未使用过这些信息,你怎么会突然知道这些信息呢?文档非常不清楚。最后一条评论-android:stopWithTask可能是更好的解决方案,您可能希望改写您的答案,以便其他用户倾向于该解决方案,而不是其他解决方案。这对我很有效(特别是,我遇到了相反的问题,需要stopWithTask=“false”)。截至2017年3月,stopWithTask未记录在其应位于()的位置,但此处有一个传递引用:()