Android在Application层级维护和管理全局所有Activity的方法ActivityLifecycleCallbacks

简介: Android在Application层级维护和管理全局所有Activity的方法ActivityLifecycleCallbacks经常看到有些项目中经常性的把所有activity继承自一个base的Activity,然后在每一次启动新activity时候添加当前activity到一个全局List那样的列表中,已达到全局管理和维护activity的目的,这种做法大概是四五年前的技术解决方案。

Android在Application层级维护和管理全局所有Activity的方法ActivityLifecycleCallbacks

经常看到有些项目中经常性的把所有activity继承自一个base的Activity,然后在每一次启动新activity时候添加当前activity到一个全局List那样的列表中,已达到全局管理和维护activity的目的,这种做法大概是四五年前的技术解决方案。如今谷歌Android官方推出了ActivityLifecycleCallbacks,ActivityLifecycleCallbacks是在Application层级的接口回调,App中所有的任何一个Activity的生命周期方法被触发时候,都会进入相应的ActivityLifecycleCallbacks生命周期里面,例如:

package zhangphil.test;

import android.app.Activity;
import android.app.Application;
import android.os.Bundle;

import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.Logger;

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //Logger初始化。
        Logger.addLogAdapter(new AndroidLogAdapter());


        this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks(){

            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                //一个App所有的任何一个Actvity进入生命周期的onCreate后会回调这个方法。
            }

            @Override
            public void onActivityStarted(Activity activity) {
                //一个App所有的任何一个Actvity进入生命周期的onStart后会回调这个方法。
            }

            @Override
            public void onActivityResumed(Activity activity) {
                //一个App所有的任何一个Actvity进入生命周期的onResumed后会回调这个方法。
            }

            @Override
            public void onActivityPaused(Activity activity) {
                //一个App所有的任何一个Actvity进入生命周期的onPaused后会回调这个方法。
            }

            @Override
            public void onActivityStopped(Activity activity) {
                //一个App所有的任何一个Actvity进入生命周期的onStopped后会回调这个方法。
            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

            }

            @Override
            public void onActivityDestroyed(Activity activity) {
                //一个App所有的任何一个Actvity进入生命周期的onDestroyed后会回调这个方法。
            }
        });
    }
}

相关文章
|
3天前
|
XML Java Android开发
利用Bundle实现Android Activity间消息的传递
利用Bundle实现Android Activity间消息的传递
|
5天前
|
机器学习/深度学习 Java Shell
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
26 0
|
3天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
10 3
|
3天前
|
API Apache Android开发
对于Android的http请求的容错管理
对于Android的http请求的容错管理
|
5天前
|
Java Android开发
Android OTG U盘无法显示在系统文件管理的修改
Android OTG U盘无法显示在系统文件管理的修改
6 0
|
5天前
|
程序员 Android开发
Android亮度调节的几种实现方法
Android亮度调节的几种实现方法
9 0
|
5天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
12 0
|
5天前
|
Android开发
Android APP 隐藏系统软键盘的方法
Android APP 隐藏系统软键盘的方法
11 0
|
6天前
|
Android开发
Android中去掉ActionBar的几种方法
Android中去掉ActionBar的几种方法
11 0
|
安全 Java Android开发
【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | Instrumentation 源码分析 )
【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | Instrumentation 源码分析 )
169 0