2014-09-27 171 views
0

我有一个后台服务方法,经常调用更新的应用程序数据。 我有一个活动,其中根据用户导航显示多个片段。 我刚开始服务时,我的仪表板活动启动应用程序,我显示的片段。现在我只想停止服务,当用户从app.I退出代码停止服务onDestroy()我的活动,但它永远不会当用户按下android手机主页按钮并退出应用程序时被调用。当后台应用程序停止BackgroundService

低于我的服务代码 -

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    callAsynchronousTask(); 
    return Service.START_NOT_STICKY; 
} 
+0

您无法拦截主页按钮,但可以确定是否按下主页按钮。我很久以前就回答过,只是搜索拦截Home Button按钮。 – 2014-09-27 10:03:28

回答

1

onDestroy()当您关闭应用程序或关闭您的活动只会调用。当你按回家键时,它不会呼叫。如果您仍然希望服务在用户按Home按钮时停止,那么您可以覆盖onPause()并停止此服务,但是当您打开另一个活动时服务将再次停止。

+0

是的,我已经尝试在两个面临同样的问题,任何其他方式,你可以请建议。 – Ravi 2014-09-27 08:31:45

+1

然后你必须打一个标志,当你在家庭活动时应该是真的,并且在真实的情况下,停止服务。 – 2014-09-27 08:42:08

+0

谢谢,你救了我的命。 – Ravi 2014-09-27 08:46:53

1

Activity当您按下Home键没有被破坏掉了!尝试在方法中或在最适合您需求的活动生命周期的其他某个点上实现您的功能!

http://developer.android.com/training/basics/activity-lifecycle/index.html

+0

我只是尝试onPause,但如果当屏幕锁定或当应用程序导航到下一个活动,然后在停止被称为和服务停止。 – Ravi 2014-09-27 08:30:00

+0

这就是你要求的。我错了吗? – Pavlos 2014-09-27 08:32:57

+0

我看到Pavlos的答案正确,根据你的要求,最终的答案是,你必须看到链接并了解活动的生命周期。 – Yazan 2014-09-27 08:38:12

相关问题