ActivityLifecycleCallbacks

ActivityLifecycleCallbacks是什么?

  • Application经过此接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理。

为何用ActivityLifecycleCallbacks?

  • 以往若需监测Activity的生命周期事件代码,你多是这样作的,重写每个Acivity的onResume(),而后做统计和处理:
@Override  
protected void onResume() {  
  super.onResume();  
  //TODO 处理和统计代码  
  Log.v(TAG, "onResume");  
} 
  • ActivityLifecycleCallbacks接口回调能够简化这一繁琐过程,在一个类中做统一处理

ActivityLifecycleCallbacks怎么用?

  • android.app.Application.ActivityLifecycleCallbacks
  • 要求API 14+ (Android 4.0+)
  • 继承Application
  • 重写Application的onCreate()方法,或在Application的无参构造方法内,调用Application.registerActivityLifecycleCallbacks()方法,并实现ActivityLifecycleCallbacks接口
public void onCreate() {  
  super.onCreate();  
  this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {  
   
    @Override  
    public void onActivityStopped(Activity activity) {  
        Logger.v(activity, "onActivityStopped");  
    }  
   
    @Override  
    public void onActivityStarted(Activity activity) {  
        Logger.v(activity, "onActivityStarted");  
    }  
   
    @Override  
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {  
        Logger.v(activity, "onActivitySaveInstanceState");  
    }  
   
    @Override  
    public void onActivityResumed(Activity activity) {  
        Logger.v(activity, "onActivityResumed");  
    }  
   
    @Override  
    public void onActivityPaused(Activity activity) {  
        Logger.v(activity, "onActivityPaused");  
    }  
   
    @Override  
    public void onActivityDestroyed(Activity activity) {  
        Logger.v(activity, "onActivityDestroyed");  
    }  
   
    @Override  
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {  
        Logger.v(activity, "onActivityCreated");  
    }  
  });  
};  

 

 

ActivityLifecycleCallbacks的拓展用法

  • 本次初探仅尝试使用Log日志工具做简要测试,如需知足较复杂的统计或调试需求时,此法可能会大大减小插入代码量,提升效率java

  • 在Fragment也能够提供相似方法的开源库 https://github.com/soarcn/AndroidLifecyleandroid

相关文章
相关标签/搜索