Android在API14之后添加了用于监听应用Activity生命周期的回调接口ActivityLifecycleCallbacks,使用时需要在Application中进行注册。
可以看到ActivityLifecycleCallbacks中的方法跟Activity生命周期方法基本是一致的。
注册与取消注册
public class MyApplication extends Application {
public static final String TAG = MyApplication.class.getSimpleName();
/** Activity监听回调 */
private ActivityLifecycleCallbacks activityLifecycleCallbacks = new ActivityLifecycleCallbacks() {
....
};
@Override
public void onCreate() {
super.onCreate();
//可注册多次,注册多个生命周期回调
registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
//Activity管理
registerActivityLifecycleCallbacks(ActivityManager.getInstance());
}
@Override
public void onTerminate() {
super.onTerminate();
//Android API中没有对此方法的过多解释,不过通常此方法会在app退出是被调用(并不是100%)
unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);
}
}
需要注意的是Android允许注册多个ActivityLifecycleCallbacks,并且同时生效。
优雅的管理Activity
实现ActivityLifecycleCallbacks接口,并创建Activity的任务栈,通过监听回调实现Activity的进栈和出栈。需要在Applic