Android需要事件前景和偏远地区



嗨,我正在制作一个应用程序,当用户进入后台以及用户进入前景时,我需要在其中显示一些内容。因此,当我们的应用程序进入后台时,我需要获得一个事件,并且当应用程序在8号以上的API中工作时再次。

我尝试了所有事情,但只能识别我的应用程序是否前景。当我们在应用程序级别再次在线时,我需要活动。

您可以为所有活动定义超类并跟踪应用程序的状态。如果所有活动都处于停止状态 - 在后台应用程序,则在前景中。在您的超级活动的onStart()onStop()方法中,您可以增加并减少可见活动的数量。然后在onStart()onStop()中检查是否有任何当前可见活动。如果没有 - 应用程序变得活跃/不活动,您可以调用您的方法:

public class SuperActivity extends Activity {
    private static int sVisibleActivitiesCount;
    @Override
    public void onStart(){
        super.onStart();
        if (SuperActivity.sVisibleActivitiesCount == 0) {
            onAppBecomesActive();
        }
        SuperActivity.sVisibleActivitiesCount++;
    }
    @Override
    public void onStop(){
        super.onStart();
        SuperActivity.sVisibleActivitiesCount--;
        if (SuperActivity.sVisibleActivitiesCount == 0) {
            onAppBecomesInactive();
        }
    }
    private void onAppBecomesActive() {
        // Do some staff
    }
    private void onAppBecomesInactive() {
        // Do some staff
    }
}

第二种方法是使用ActivityLifecyClecallbacks(Min API 14)来监视活动的生命周期和在一个地方跟踪应用程序状态,而没有所有活动的超级类。因此,如果您的应用程序具有MinSDKVersion =" 14"。

,我宁愿使用这种方法。

最新更新