gpt4 book ai didi

android - 如何判断应用程序中的任何 Activity 是否处于前台?

转载 作者:行者123 更新时间:2023-11-30 04:53:04 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,它有一个周期性的后台服务。我希望此服务根据我的应用程序中的任何 Activity 是否打开而做出不同的 react 。问题是该服务只是通过 AlarmManager 保持自身运行,使其处于与 Activity 不同的“轨道”上,所以我不知道应用程序在运行时是否打开。

我能想到的最佳解决方案是在我的所有 Activity 中调用 onResume() 或 onPause() 时打开/关闭 bool 值,但这似乎需要很多步骤。有没有更简单、更优雅的解决方案?

最佳答案

Is there a simpler, more elegant solution?

好吧,这在一定程度上取决于“ react 不同”的含义。

假设您想要在 Activity 不在前台时发出一个通知,但如果 Activity 在前台则您想要弹出一个对话框。

在那种情况下,您无论如何都需要一些从服务到 Activity 的通信路径。因此,在 onResume() 中向服务注册回调(由 Activity 提供),并在 onPause() 中取消注册。如果存在,您的服务将使用回调;如果没有回调,它会引发 Notification

您可以使用广播 Intent 完成相同的事情(在 onResume()/onPause() 的 Activity 中注册/注销接收器>) 如果你愿意的话。

关于android - 如何判断应用程序中的任何 Activity 是否处于前台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com