Android需要事件前台和后台

Android需要事件前台和后台,android,application-lifecycle,Android,Application Lifecycle,嗨,朋友们,我正在制作一个应用程序,当用户进入后台时,我需要显示一些东西,当用户进入前台时,我需要再次显示一些东西。所以我需要得到一个事件,当我们的应用程序进入后台时,再次当应用程序进入前台时,在api高于8的情况下工作 我尝试了所有的方法,但只能识别我的应用程序是否在前台。当我们再次在应用程序级别联机时,我需要一个事件。您可以为所有活动定义一个超类,并跟踪应用程序的状态。如果所有活动都处于停止状态-应用程序在后台,否则-在前台。在超级活动的onStart和onStop方法中,可以增加和减少可见

嗨,朋友们,我正在制作一个应用程序,当用户进入后台时,我需要显示一些东西,当用户进入前台时,我需要再次显示一些东西。所以我需要得到一个事件,当我们的应用程序进入后台时,再次当应用程序进入前台时,在api高于8的情况下工作


我尝试了所有的方法,但只能识别我的应用程序是否在前台。当我们再次在应用程序级别联机时,我需要一个事件。

您可以为所有活动定义一个超类,并跟踪应用程序的状态。如果所有活动都处于停止状态-应用程序在后台,否则-在前台。在超级活动的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
    }
}

第二种方法是使用MINAPI14来监视活动生命周期,并在单个位置跟踪应用程序状态,而无需为所有活动创建一个超类。因此,如果您的应用程序的minSdkVersion=14,我宁愿使用这种方法。

还可以在应用程序的自定义实现中添加布尔值,并通过getApplication和casting在onStart onStop中对其进行编辑。所以你的回复不需要counting.thanx,但我只需要在应用程序变成前台和后台时才需要事件。但是你的方法很棒@Makovkastart这有助于解决我的问题。。。