众所周知,我们可以在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());
}
});
}
}
这样就可以监控整个应用的生命周期了。还可以做到判断当前应用是否在后台。具体能做什么,你可以发挥你的想象了。