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