2017-01-12 14 views
0

アプリがバックグラウンドで実行されるときに呼び出される汎用メソッドはありますか?アプリがバックグラウンドで実行されたときにアクティビティを実行するだけの変更が行われたときにアクションを実行する必要はありません。つまり、ホーム画面が表示されます。アプリがバックグラウンドで実行されるときに呼び出されるユニバーサルメソッド

答えて

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) { 

    } 
} 

最後に、onCreateであなたのApplicationクラスにごLifeCycleCallbacksクラスを登録します。

registerActivityLifecycleCallbacks(new LifeCycleCallbacks());

関連する問題