在Android应用程序处于前台时运行线程

时间:2011-08-05 18:14:02

标签: android background

我有一个Android应用。我有一个主要的活动,有一个按钮。单击该按钮时,另一个活动将进入前台。问题是,我想运行一个后台线程来轮询来自服务器的更新。但是,我希望它仅在应用程序位于前台(主活动或第二个)时运行,并在用户单击“主页”按钮或单击“返回”按钮时停止轮询,直到它从主活动返回。

但我怎么知道应用程序是否还在前台?我可以捕获主要活动的onPause,但是当我启动第二个活动时也会调用它。

那我怎么知道应用程序何时在后台?

由于

3 个答案:

答案 0 :(得分:1)

您应该为后台正在进行的工作提供服务。

要在单击“主页”或“后退”按钮时停止它,只需为它们制作一个监听器,并在按下任何一个时停止服务。

答案 1 :(得分:0)

对我来说,每项活动最简单。在两个活动之间进行轮询是否非常重要?否则你会有关于知道谁在前面的问题。

答案 2 :(得分:0)

您可以使用引用计数的单例。 您的主要活动应该在onResume上添加第一个引用,从现在开始,在调用每个新活动(例如startActivity)时,您应该添加引用。 每个活动都应减少onPause的引用计数。

另一种选择是使用服务:Services