Android developers - ActivityLifecycleCallbacks use

Copyright: Merry due share and eternity, knowledge sharing and immortal, I share my happiness ... https://blog.csdn.net/walter247443819/article/details/78748532

What ActivityLifecycleCallbacks that?

  • Application through this interface provides a callback method used to allow developers to Activity lifecycle events for centralized treatment.

Why ActivityLifecycleCallbacks?

  • For the past monitoring Activity lifecycle event code, you may do so, rewrite onResume each Acivity of (), and then for statistical processing:
    1. @Override  
    2. protected void onResume() {  
    3.   super.onResume();  
    4.   // TODO processing and statistical code  
    5.   Log.v(TAG, "onResume");  
    6.   Logger.v(TAG, "onResume");  
    7.   Logging.v(TAG, "onResume");  
    8.   ...  
    9. }  

  • ActivityLifecycleCallbacks callback interface to simplify this tedious process, make a unified process in a class

ActivityLifecycleCallbacks how to use?

  • android.app.Application.ActivityLifecycleCallbacks
  • Requirements API 14+ (Android 4.0+)
  • Inheritance Application
    1. public class BaseApplication extends Application  

  • Custom Application hired in the AndroidManifest
    1. <application android:name=".global.BaseApplication"  

  • Application of rewriting onCreate () method, or the non-parametric method of construction of the Application, calls Application.registerActivityLifecycleCallbacks () method, and implement the interface ActivityLifecycleCallbacks

    1. public void onCreate() {  
    2.   super.onCreate();  
    3.   this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {  
    4.    
    5.     @Override  
    6.     public void onActivityStopped(Activity activity) {  
    7.         Logger.v(activity, "onActivityStopped");  
    8.     }  
    9.    
    10.     @Override  
    11.     public void onActivityStarted(Activity activity) {  
    12.         Logger.v(activity, "onActivityStarted");  
    13.     }  
    14.    
    15.     @Override  
    16.     public void onActivitySaveInstanceState(Activity activity, Bundle outState) {  
    17.         Logger.v(activity, "onActivitySaveInstanceState");  
    18.     }  
    19.    
    20.     @Override  
    21.     public void onActivityResumed(Activity activity) {  
    22.         Logger.v(activity, "onActivityResumed");  
    23.     }  
    24.    
    25.     @Override  
    26.     public void onActivityPaused(Activity activity) {  
    27.         Logger.v(activity, "onActivityPaused");  
    28.     }  
    29.    
    30.     @Override  
    31.     public void onActivityDestroyed(Activity activity) {  
    32.         Logger.v(activity, "onActivityDestroyed");  
    33.     }  
    34.    
    35.     @Override  
    36.     public void onActivityCreated(Activity activity, Bundle savedInstanceState) {  
    37.         Logger.v(activity, "onActivityCreated");  
    38.     }  
    39.   });  
    40. };  

  • Operating results (Logcat log)

    1. 10-21 14:32:57.722: V/WelcomeActivity(8085): onActivityCreated  
    2. 10-21 14:32:57.762: V/WelcomeActivity(8085): onActivityStarted  
    3. 10-21 14:32:57.762: V/WelcomeActivity(8085): onActivityResumed  
    4. 10-21 14:32:59.164: V/WelcomeActivity(8085): onActivityPaused  
    5. 10-21 14:32:59.194: V/MainActivity(8085): onActivityCreated  
    6. 10-21 14:32:59.224: V/MainActivity(8085): onActivityStarted  
    7. 10-21 14:32:59.224: V/MainActivity(8085): onActivityResumed  
    8. 10-21 14:32:59.735: V/WelcomeActivity(8085): onActivityStopped  
    9. 10-21 14:32:59.735: V/WelcomeActivity(8085): onActivityDestroyed  
    10. 10-21 14:33:06.502: V/MainActivity(8085): onActivityPaused  
    11. 10-21 14:33:06.612: V/MainActivity(8085): onActivityStopped  
    12. 10-21 14:33:06.612: V/MainActivity(8085): onActivityDestroyed  

ActivityLifecycleCallbacks expand usage

  • The only attempt to use the Log On the logging facility for a brief test, when To meet more complex statistical or debugging requirements, this method may significantly reduce the amount of code is inserted, improve efficiency

  • API only provides the interface callbacks on the 14+ version, how the system uses Android 4.0?

  • API only stay for a few Activity lifecycle events of the above-mentioned callback interfaces, may have been unable to meet the increasing transition to use Fragment of today's needs, how to apply LifecycleCallbacks on a larger scale?

Guess you like

Origin blog.csdn.net/walter247443819/article/details/78748532