5

我正在开发一个还包含服务的 Android 应用程序。ICS 最近应用程序列表的“滑动退出”功能按预期关闭应用程序,但服务只是随它一起退出并且没有收到 onTaskRemoved() 回调来告诉它清理(或 onDestroy() 就此而言) ):

http://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent )

这会在状态栏中留下通知图标,我需要确保在应用退出时将其删除。

我尝试在 Manifest.xml 中将 android:stopWithTask 设置为 false(和 true),它似乎没有任何区别。

    <service 
        android:name="com.test.TestService"
        android:stopWithTask="false" 
    />

为什么没有收到 onTaskRemoved() 回调的任何想法?

4

3 回答 3

2

当应用程序通过滑动从最近的应用程序列表中删除时Service开始startService()并被调用。onTaskRemoved()

但如果以Service开头bindService(),则onTaskRemoved()永远不会被调用。请在此处查看参考资料,看看它是否能解决您的问题。

于 2014-11-21T11:30:30.320 回答
0

如果您Service在用户滑动时正在运行,则将调用此方法。

确保你Service在那一刻正在运行。

于 2012-09-25T08:30:54.103 回答
0

我所做的是每个活动在 onCreate() 处使用 startService() 启动指定的服务,并在 onDestroy() 处使用 stopService() 停止它,在生命周期中,当滑动发生并且活动处于任务顶部时,onTaskMoved将被调用,然后我们可以监控滑动行为。缺点是每个活动都必须配备配对服务,当您的应用程序中有各种活动时,这很丑陋。

于 2015-01-29T08:38:08.017 回答