【发布时间】:2014-06-09 19:53:45
【问题描述】:
我有一个服务,其中实现了onTaskRemoved() 方法。
当服务以startService() 启动时,当应用程序通过滑动从最近的应用程序列表中删除时,函数onTaskRemoved() 被调用。
但如果服务以bindService() 启动,则永远不会调用onTaskRemoved()。
在使用bindService() 启动应用程序后,通过滑动从最近的应用程序列表中删除应用程序时,如何进行服务调用onTaskRemoved()?
如果开始,Android 会调用以下生命周期方法:
1. bindService():
Activity﹕ onCreate()
CustomService﹕ onCreate()
CustomService﹕ onStart()
CustomService﹕ onStartCommand()
CustomService﹕ onBind()
// Here we swipe to remove app from recent-apps-list
CustomService﹕ onTrimMemory()
2. startService():
ActivityA﹕ onCreate()
CustomService﹕ onCreate()
CustomService﹕ onStart()
CustomService﹕ onStartCommand()
CustomService﹕ onBind()
// Swipe to remove app from recent-apps-list
CustomService﹕ onTrimMemory()
CustomService﹕ onTaskRemoved() // <=====
CustomService﹕ onUnbind()
【问题讨论】:
-
重要提示:每次应用程序进入后台时都会调用
onTrimMemory(),您无需“滑动删除”应用程序即可触发它。如果您按下主页按钮,就会发生这种情况。所以你的评论具有误导性。 -
试试这个技巧(工作)-stackoverflow.com/a/49489478/3879847
标签: android android-service android-service-binding