如何在 Android 中的活动/任务更改时收到通知

Posted

技术标签:

【中文标题】如何在 Android 中的活动/任务更改时收到通知【英文标题】:How to be notified when activity/task changes in Android 【发布时间】:2011-11-19 22:39:19 【问题描述】:

我正在构建一个系统状态记录器。当任何活动/任务被带到堆栈的停止并被用户看到(不仅仅是我写的那个)时,我希望得到通知。

ActivityManager 可以计算出最上面的内容: http://developer.android.com/reference/android/app/ActivityManager.html

但是,这需要我经常轮询以重新计算最重要的内容,从而浪费大量资源。有没有办法在活动发生变化时接收事件/回调/通知?

** 编辑 ** 明确一点——我希望在 任何 活动变为活动活动时收到通知。

【问题讨论】:

你解决过这个问题吗? 投票是我们最终所做的。事实证明,它并不太贵。 谢谢兄弟:i.imgur.com/Ie17FZ6.gif 【参考方案1】:

onResume() 在活动进入活动状态时被调用。

【讨论】:

对不起——我的问题应该更清楚。我想知道任何 Android Activity 是否已到达堆栈顶部,而不仅仅是我自己编写的。 如果您的应用程序顶部有其他内容,您的应用程序/活动将调用“onPause()”方法。通过它,您可以发现其他东西已经进入了生活状态。 我并不真正关心我的活动状态的变化。我想知道在所有其他活动中何时调用onPause/onResume。 “我想知道”是什么意思。我相信那是你的应用程序。因此,当 Android 操作系统让您的应用暂停时,您的应用可以知道正在运行其他东西。 我希望在任何进程获得或失去前台状态时(即任何进程成为或不再是最顶层活动时)通知我的进程。

以上是关于如何在 Android 中的活动/任务更改时收到通知的主要内容,如果未能解决你的问题,请参考以下文章

在 webview Android 中检测到 url 时如何更改活动

收到 C2DM 推送通知时更改活动行为

Android:暂时禁用活动中的方向更改

如何在android中的活动开始时禁用按钮的单击事件检查

如何在 Interceptor Android 中获取 401 状态码时更改活动

如何在创建后通过更改活动来处理推送通知意图?