在应用开发中我们经常会根据Activity的生命周期做一些操作,但是有时候我们需要对每个Activity做同样的操作,如果深入到每个Activity中去添加具体的代码这样就比较麻烦,还好Android提供了方法在Application中能够监听到应用里面每个Activity的生命周期,代码如下:
mApplication.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
Log.e(TAG,"onActivityCreated--" + activity.getLocalClassName().toString());
}
@Override
public void onActivityStarted(Activity activity) {
Log.e(TAG,"onActivityStarted--" + activity.getLocalClassName().toString());
}
@Override
public void onActivityResumed(Activity activity) {
Log.e(TAG,"onActivityResumed--" + activity.getLocalClassName().toString());
}
@Override
public void onActivityPaused(Activity activity) {
Log.e(TAG,"onActivityPaused--" + activity.getLocalClassName().toString());
}
@Override
public void onActivityStopped(Activity activity) {
Log.e(TAG,"onActivityStopped--" + activity.getLocalClassName().toString());
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
});
如上,使用Application的对象调用registerActivityLifecycleCallbacks
就能够监听到每个Activity的生命周期的回调,而且包括引用的第三方库的Activity的也能监听到。
但是需要注意的是这个方法只支持4.0以上的版本,如果想对老版本进行支持,就需要使用HOOK的方式来做了,不过我感觉目前4.0以下的设备基本上淘汰了,所以这个接口就够用了。