2017-01-12 3 views
0

Есть ли универсальный метод, который вызывается, когда приложение идет в фоновом режиме? Я не хочу выполнять действие при изменении активности, просто хочу выполнить его, когда приложение заходит в фоновый режим. I.e.home_screen.Универсальный метод, который вызывается, когда приложение идет в фоновом режиме

ответ

2

Вы можете добиться этого с помощью 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) { 

    } 
} 

Наконец, зарегистрировать свой LifeCycleCallbacks класс с Application класса в onCreate:

registerActivityLifecycleCallbacks(new LifeCycleCallbacks());

Смежные вопросы