在活动或任务发生变化时收到通知

时间:2015-06-30 22:05:02

标签: android android-activity android-service

Android系统是否有任何方式可以通知服务系统中的活动或任务(仅我的活动/任务!)以某种方式发生了变化(例如,另一项活动被带到了前面还是停下来?当然,这是为了避免轮询相同的信息。

有一个相同的问题here,但3年前被问过,所以在此期间,也许有人对此有答案?作为这个问题的补充:如果答案是否定的,有人可以用任何方式来增强这个功能吗,比方说,低级编程还是什么?

3 个答案:

答案 0 :(得分:0)

你想要的是什么?ctivity lifecycle events

Aren的onPause()和onResume()是否足够?

答案 1 :(得分:0)

不,没有一般解决方案。您只能在自己的活动的生命周期方法中记录此信息。从Android 5开始,即使轮询也行不通。 ActivityManager#getRecentTasks()被吓坏了。来自文档:

  

此方法在API级别21中已弃用。从LOLLIPOP开始,此方法不再适用于第三方应用程序:引入以文档为中心的最新版本意味着它可能会将个人信息泄露给调用者。为了向后兼容,它仍将返回其数据的一小部分:至少是调用者自己的任务(尽管请参阅getAppTasks()以获取正确支持的方式来检索该信息),以及可能的其他一些任务作为众所周知的不敏感的家。

由于这被认为是一个安全问题,您可以打赌,如果有一种低级别的方法,谷歌最终会发现并打破它。

答案 2 :(得分:0)

我感到很懒,抱歉,试试这个逻辑。

检查此post。你想要在这里实现的是记录当前运行的所有任务;并且在一个循环中你继续检查,当一个任务因为检查整个运行任务而死亡时会通知你,你会知道谁死了 - 但是这个版本并不是所有版本都有限,有些人会告诉你,它不是意思是。