Android 4.0(API Level 14)新增了一个接口ActivityLifecycleCallbacks,用于监听应用中所有Activity的运行情况,解放了开发者统计分析Activity的困难。
官方文档:http://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html
registerActivityLifecycleCallbacks是Application的一个接口,注册之后应用里的所有activity的生命周期都会被监控起来,我们可以在此接口方法里实现一些特殊的需求。比如统计用户对每个Activity使用情况,我们可以定义一个BaseActivity,在onStart()和onStop()人工插入统计方法。比如从桌面进应用的时候,检测某些状态,就可以在onActivityResumed方法里检测。
在Application 的onCreate方法中使用registerActivityLifecycleCallbacks(callback)注册你的CallBack,如下:
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityStopped(Activity arg0) { // TODO Auto-generated method stub LogHelper .i(TAG, "ActivityLifecycleCallbacks:onActivityStopped"); } @Override public void onActivityStarted(Activity arg0) { // TODO Auto-generated method stub LogHelper .i(TAG, "ActivityLifecycleCallbacks:onActivityStarted"); } @Override public void onActivitySaveInstanceState(Activity arg0, Bundle arg1) { // TODO Auto-generated method stub LogHelper .i(TAG, "ActivityLifecycleCallbacks:onActivitySaveInstanceState"); } @Override public void onActivityResumed(Activity arg0) { // TODO Auto-generated method stub LogHelper .i(TAG, "ActivityLifecycleCallbacks:onActivityResumed"); } @Override public void onActivityPaused(Activity arg0) { // TODO Auto-generated method stub LogHelper.i(TAG, "ActivityLifecycleCallbacks:onActivityPaused"); } @Override public void onActivityDestroyed(Activity arg0) { // TODO Auto-generated method stub LogHelper.i(TAG, "ActivityLifecycleCallbacks:onActivityDestroyed"); } @Override public void onActivityCreated(Activity arg0, Bundle arg1) { // TODO Auto-generated method stub LogHelper .i(TAG, "ActivityLifecycleCallbacks:onActivityCreated"); } });