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:
- @Override
- protected void onResume() {
- super.onResume();
- // TODO processing and statistical code
- Log.v(TAG, "onResume");
- Logger.v(TAG, "onResume");
- Logging.v(TAG, "onResume");
- ...
- }
- 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
- public class BaseApplication extends Application
- Custom Application hired in the AndroidManifest
- <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
- 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");
- }
- });
- };
-
Operating results (Logcat log)
- 10-21 14:32:57.722: V/WelcomeActivity(8085): onActivityCreated
- 10-21 14:32:57.762: V/WelcomeActivity(8085): onActivityStarted
- 10-21 14:32:57.762: V/WelcomeActivity(8085): onActivityResumed
- 10-21 14:32:59.164: V/WelcomeActivity(8085): onActivityPaused
- 10-21 14:32:59.194: V/MainActivity(8085): onActivityCreated
- 10-21 14:32:59.224: V/MainActivity(8085): onActivityStarted
- 10-21 14:32:59.224: V/MainActivity(8085): onActivityResumed
- 10-21 14:32:59.735: V/WelcomeActivity(8085): onActivityStopped
- 10-21 14:32:59.735: V/WelcomeActivity(8085): onActivityDestroyed
- 10-21 14:33:06.502: V/MainActivity(8085): onActivityPaused
- 10-21 14:33:06.612: V/MainActivity(8085): onActivityStopped
- 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?