用意されています。
参考:Android Developerサイト
これを利用することでアプリケーション内にあるActivityのライフサイクル
メソッドのコールバックを検知することができます。
下記サンプルコートです。
public class TestApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifeCycleListener());
}
private static class ActivityLifeCycleListener implements ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
android.util.Log.e("yuki", "yuki call onCreated:" + activity);
}
@Override
public void onActivityStarted(Activity activity) {}
@Override
public void onActivityResumed(Activity activity) {
android.util.Log.e("yuki", "yuki call onResumed:" + activity);
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {}
@Override
public void onActivityPaused(Activity activity) {
android.util.Log.e("yuki", "yuki call onPaused:" + activity);}
@Override
public void onActivityStopped(Activity activity) {}
@Override
public void onActivityDestroyed(Activity activity) {}
}
}
このアプリに内包されているTestApplication2Activityを起動→終了した場合のログは下記になります。
E/yuki(687): yuki call onCreated:test.yuki.TestApplication2Activity@4136e050
E/yuki(687): yuki call onResumed:test.yuki.TestApplication2Activity@4136e050
E/yuki(687): yuki call onPaused:test.yuki.TestApplication2Activity@4136e050
コールバックで渡されてくる引数ActivityからどのActivityかを判断するのは
instanceofやマーカーインターフェースを利用て判定できるでしょう。
またActivityのライフサイクルで共通の処理を実装する場合や、Activityを
一元管理したい場合にも便利です。
以上です。