Android 当应用程序进入后台时调用的通用方法

Android 当应用程序进入后台时调用的通用方法,android,Android,当应用程序进入后台时,是否有任何通用方法被调用?我不想在活动更改时执行此操作,只想在应用程序进入后台时执行此操作,即主屏幕出现。您可以使用ActivityLifeCycleCallbacks实现此目的: public class LifeCycleCallbacks implements Application.ActivityLifecycleCallbacks { /** * Keeps a count of the activities started. */

当应用程序进入后台时,是否有任何通用方法被调用?我不想在活动更改时执行此操作,只想在应用程序进入后台时执行此操作,即主屏幕出现。

您可以使用
ActivityLifeCycleCallbacks
实现此目的:

public class LifeCycleCallbacks implements Application.ActivityLifecycleCallbacks {

    /**
     * Keeps a count of the activities started.
     */
    private int mActivitiesStarted;
    /**
     * Keeps a count of the activities stopped.
     */
    private int mActivitiesStopped;

    @Override
    public void onActivityCreated(Activity activity, Bundle bundle) {

    }

    @Override
    public void onActivityStarted(Activity activity) {
        if (mActivitiesStarted == mActivitiesStopped) {
            // This is the session start
        }
        ++mActivitiesStarted;
    }

    @Override
    public void onActivityResumed(Activity activity) {

    }

    @Override
    public void onActivityPaused(Activity activity) {

    }

    @Override
    public void onActivityStopped(Activity activity) {
        ++mActivitiesStopped;
        if ((mActivitiesStarted > 0) && (mActivitiesStarted == mActivitiesStopped)) {
            /* This is session end. We can do things that we need to do when the app
            * session ends, i.e. send tracking info, etc. */
        }
    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {

    }

    @Override
    public void onActivityDestroyed(Activity activity) {

    }
}
最后,在
onCreate
中向
应用程序注册
LifeCycleCallbacks
类:


registerActivityLifecycleCallbacks(新生命周期Callbacks())

您可以通过使用ActivityLifeCycleCallbacks来实现这一点:

public class LifeCycleCallbacks implements Application.ActivityLifecycleCallbacks {

    /**
     * Keeps a count of the activities started.
     */
    private int mActivitiesStarted;
    /**
     * Keeps a count of the activities stopped.
     */
    private int mActivitiesStopped;

    @Override
    public void onActivityCreated(Activity activity, Bundle bundle) {

    }

    @Override
    public void onActivityStarted(Activity activity) {
        if (mActivitiesStarted == mActivitiesStopped) {
            // This is the session start
        }
        ++mActivitiesStarted;
    }

    @Override
    public void onActivityResumed(Activity activity) {

    }

    @Override
    public void onActivityPaused(Activity activity) {

    }

    @Override
    public void onActivityStopped(Activity activity) {
        ++mActivitiesStopped;
        if ((mActivitiesStarted > 0) && (mActivitiesStarted == mActivitiesStopped)) {
            /* This is session end. We can do things that we need to do when the app
            * session ends, i.e. send tracking info, etc. */
        }
    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {

    }

    @Override
    public void onActivityDestroyed(Activity activity) {

    }
}
最后,在
onCreate
中向
应用程序注册
LifeCycleCallbacks
类:

registerActivityLifecycleCallbacks(新生命周期Callbacks())