1

Hi Friends i am making an application in which i need to show something when user goes in background and again when user comes in foreground. So i Need to get an event when our app goes in background and again when app comes in foreground working in api above 8.

I tried all thing but only able to recognize if my app is foreground or not. I need event when we come again online at application level.

4

1 回答 1

0

您可以为所有活动定义一个超类并跟踪应用程序的状态。如果所有活动都处于停止状态 - 应用程序在后台,否则 - 在前台。在您的超级活动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(最低 API 14)来监控活动生命周期并在一个地方跟踪应用程序状态,而不需要所有活动的超类。因此,如果您的应用具有 minSdkVersion="14",我宁愿使用这种方法。

于 2014-03-11T15:05:14.233 回答