如何检测我的任何活动是否是最前面的并且对用户可见?

Pen*_*m10 25 android android-activity

我希望在我的任何活动可见时启动意图,否则我会将其作为通知提出,并由用户触发.

要做出决定,我需要知道我的任何活动是否最重要,我该怎么做?

mba*_*ord 10

我不知道有一种获取当前显示活动的方法,但您可以将活动生命周期和标志结合起来.

对于标志,如果你已经扩展了Application类,那么它可能是一个存储它的好地方.对于扩展应用程序类,这个问题最佳答案有信息.(d).

因此,可能会在onResume/onPause或onStart/onStop上跟踪当前活动活动(或活动可见的标志),具体取决于您想要的行为.

由于您有多个活动,因此您需要一个用于存储标志的质心位置,这就是应用程序有意义的原因.您可以通过强制转换应用程序上下文来获取自定义Application对象(例如((MyApplication)getApplicationContext()).isMyActivityActive).

您也可以扩展Activity以帮助保持此代码的清洁和包含.


如果您正在使用服务,则可以在onStart/onStop(或onResume/onPause)中的每个活动中绑定到该服务.如果绑定,你就可见了.