1. 程式人生 > >Android 監控應用中所有Activity 的生命週期

Android 監控應用中所有Activity 的生命週期

眾所周知,我們可以在Activity 裡面監控當前Activity 的生命週期,比如onResume() ,onCreate() 等等。如果想監控所有Activity 的生命週期呢?你可能會說那在BaseActivity 裡面去寫啊,用集合記錄。當然這能做到,可是有沒有更簡單的辦法呢?

其實我們可以在Application 的onCreate() 裡去註冊一個監聽:

public class MyApplication extends Application {
    public static MyApplication app;

    @Override
    public void onCreate() {
        super.onCreate();
        app = this;

        this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
//                Log.v("tag_2","onActivityCreated" + activity.getClass().getName());
            }

            @Override
            public void onActivityStarted(Activity activity) {

            }

            @Override
            public void onActivityResumed(Activity activity) {

            }

            @Override
            public void onActivityPaused(Activity activity) {

            }

            @Override
            public void onActivityStopped(Activity activity) {

            }

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

            }

            @Override
            public void onActivityDestroyed(Activity activity) {
//                Log.v("tag_2","onActivityDestroyed" + activity.getClass().getName());
            }
        });
    }
}
這樣就可以監控整個應用的生命週期了。還可以做到判斷當前應用是否在後臺。具體能做什麼,你可以發揮你的想象了。