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后会回调这个方法。
            }
        });
    }
}

相关文章
|
8月前
|
Android开发 开发者
Android自定义view之利用drawArc方法实现动态效果
本文介绍了如何通过Android自定义View实现动态效果,重点使用`drawArc`方法完成圆弧动画。首先通过`onSizeChanged`进行测量,初始化画笔属性,设置圆弧相关参数。核心思路是不断改变圆弧扫过角度`sweepAngle`,并调用`invalidate()`刷新View以实现动态旋转效果。最后附上完整代码与效果图,帮助开发者快速理解并实践这一动画实现方式。
211 0
|
6月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
462 11
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
588 15
Android 系统缓存扫描与清理方法分析
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
277 6
|
程序员 开发工具 Android开发
Android|WebView 禁止长按,限制非白名单域名的跳转层级
如何限制 WebView 仅域名白名单网址能随意跳转,并禁用长按选择文字。
325 2
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
290 3
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
274 3
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
172 0
|
XML Java Android开发
我的Android进阶之旅------>解决Android Studio全局搜索搜不到结果的问题
1、问题描述 今天使用Android Studio时,想通过使用快捷键Ctrl+Shift+F来进行全局搜索指定字符串,如下图所示:想搜索字符串”码农偷懒了”, 打开string.
3501 0
|
3月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
389 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章