我有一个Android应用。我有一个主要的活动,有一个按钮。单击该按钮时,另一个活动将进入前台。问题是,我想运行一个后台线程来轮询来自服务器的更新。但是,我希望它仅在应用程序位于前台(主活动或第二个)时运行,并在用户单击“主页”按钮或单击“返回”按钮时停止轮询,直到它从主活动返回。
但我怎么知道应用程序是否还在前台?我可以捕获主要活动的onPause,但是当我启动第二个活动时也会调用它。
那我怎么知道应用程序何时在后台?
由于
答案 0 :(得分:1)
您应该为后台正在进行的工作提供服务。
要在单击“主页”或“后退”按钮时停止它,只需为它们制作一个监听器,并在按下任何一个时停止服务。
答案 1 :(得分:0)
对我来说,每项活动最简单。在两个活动之间进行轮询是否非常重要?否则你会有关于知道谁在前面的问题。
答案 2 :(得分:0)
您可以使用引用计数的单例。 您的主要活动应该在onResume上添加第一个引用,从现在开始,在调用每个新活动(例如startActivity)时,您应该添加引用。 每个活动都应减少onPause的引用计数。
另一种选择是使用服务:Services