Android:如何知道应用程序何时进入或“背景”模式?

前端之家收集整理的这篇文章主要介绍了Android:如何知道应用程序何时进入或“背景”模式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正试图通过 Android来实现以下目标:

>当应用程序处于后台时,线程会立即轮询服务器,然后检索数据,并通知用户新数据是否可用.我正在使用一个服务,罚款.
>当应用程序处于“活动”状态时,即其中一个活动可见,则轮询应该停止,因为它可能会干扰其他用户操作.

我不明白如何检测应用程序的“活动”或“背景”使用之间的转换. onResume()活动方法似乎没有帮助,因为活动可以在“活动”使用期间被隐藏或可见.我的理解是,应用程序本身并没有使两个国家之间的区别.
按住HOME按钮可以相关吗?还有另外一种办法来区分这个区别吗?
我正在考虑相当于iPhone的应用程序委托方法applicationDidEnterBackground.是Android的正确方法吗?还是用另外一种方法

谢谢.

解决方法

我将参考 Activity Lifecycle.在onResume和onPause之间,您的活动是“活动”,即它在屏幕上,用户可以与它进行交互.如果您的活动的onPause方法调用,那么您应该假定它不再是“活动”,并且在再次调用onResume之前,用户不能与其进行交互.如果您希望在服务中跟踪此操作,则需要手动执行此操作.

这可能是通过在Activity#onResume中调用您的服务中的方法来实现的,该方法增加一个计数器或设置一个标志,并在onPause中还原该更改.如果你有多个活动,那么你最有可能需要一个计数器,可能是一个AtomicInteger,并且使用它来确定什么时候你应该恢复你的投票.

我可能会等待一段时间,当计数器达到0时,重新检查它,如果仍然是0,则恢复轮询.这将解释一个活动的onPause和另一个onResume之间的差距.

猜你在找的Android相关文章