android jetpack之LifeCycle

Android_Jetpack:LifeCycle在Activity/Fragment、Service以及Application中的应用 Android_Jetpack:LifeCycle在Activity/Fragment、Service以及Application中的应用一、使用LifeCycle解耦Activity/Fragment与组件二、使用LifeCycleService解耦Service与组件三、使用ProcessLifecycleOwner监听应用程序的生命周期 最近重新捡起了Android开发,对Jetpack很感兴趣,就专门研究了下。这篇主要讲的就是系统组件与普通组件解耦的LifeCycle。LifeCycle可以帮助开发者 阅读详情

jetpack是一整套google为开发者提供的开发库,里面包含很多组件,今天学习下LifeCycle

LifeCycle是可以感知生命周期型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护

有了LifeCycle像有些内存泄露问题就可以解决了

现在来看看它的使用

定义一个类实现LifecycleObserver

public class ActivityLifecycle implements LifecycleObserver {
    private static final String TAG ="ActivityLifeObserver" ;
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    public void onCreate() {
        Log.e(TAG, "onCreate: " );
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    public void onStart() {
        Log.e(TAG, "onStart: " );
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    public void onResume() {
        Log.e(TAG, "onResume: " );
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    public void onPause() {
        Log.e(TAG, "onPause: " );
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    public void onStop() {
        Log.e(TAG, "onStop: " );
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    public void onDestroy() {
        Log.e(TAG, "onDestroy: " );
    }
}

 最主要的是看LifeCycle 中的枚举Event注解中有那些

public enum Event {
        /**
         * Constant for onCreate event of the {@link LifecycleOwner}.
         */
        ON_CREATE,
        /**
         * Constant for onStart event of the {@link LifecycleOwner}.
         */
        ON_START,
        /**
         * Constant for onResume event of the {@link LifecycleOwner}.
         */
        ON_RESUME,
        /**
         * Constant for onPause event of the {@link LifecycleOwner}.
         */
        ON_PAUSE,
        /**
         * Constant for onStop event of the {@link LifecycleOwner}.
         */
        ON_STOP,
        /**
         * Constant for onDestroy event of the {@link LifecycleOwner}.
         */
        ON_DESTROY,
        /**
         * An {@link Event Event} constant that can be used to match all events.
         */
        ON_ANY
    }

上面对应就是activity的生命周期

在Activity中

 getLifecycle().addObserver(new ActivityLifecycle());

相当于观察者模式,比如很多activity中在某个生命周期方法中要释放什么资源的,就不需要在每个activity都去写了 ,这样维护起来也方便,可以结合mvp架构模式,V层通常都是使用弱引用去维护它,现在有了LifeCycle,可以结合它在onDestory()方法中去做了 ,

 

【Android Jetpack高手日志】Lifecycle 从入门到精通 支持库 26.1.0 及更高版本中的 Fragment 和 Activity 已实现接口。如果你有一个自定义类并希望使其成为,可以使用类,但需要将事件转发到该类,代码如下:) {该 MainActivty 是实现了 Activity 类,而不是 AppcompatActivity(FragmentActivity) 类,所以需要这样的处理。我们来看看 FragmentActivity 中的源码,比如onCreate方法和onPause方法/***/······@Override··· 阅读详情

相关推荐

Android Jetpack系列之Lifecycle

如果我们的Activity由于各种原因继承的不是AppcompatActivity而是Activity呢我们可以看到这个时候,就不能直接使用getLifecycle,而要自定义一个LifecycleOwner了,我们让Activity继承自LifecycleOwner,使用LifecycleRegistry定义如下:@Override@NonNull@Override这样我们就实现了自定义LifecycleOwner了,不过大多数时候我们还是不需要自定义的。

2401_87555332的博客 999

Android: 彻底搞懂Lifecycle——使用篇

你真的了解lifecycle吗?本文的目标就是要“打破砂锅问到底”,带你真真切切了解它。lifecycle 是属于Android Jetpack(官方开发工具包)—— Architecture(架构组件)中的一员。 【官方介绍】构建生命周期感知型组件,这些组件可以根据 Activity 或 Fragment 的当前生命周期状态调整行为。 【白话】lifecycle可以和Activity或Fragment生命周期绑定,方便我们做一些跟生命周期相关的业务逻辑。 【应用场景】【示例】为了方便李(理)姐(解),下

小小小石头的专栏 1万+

Android Jetpack架构组件之 Lifecycle(源码篇)

一、前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面。 Android Architecture组件是Android Jetpack的一部分,它们是一组库,旨在帮助开发者设计健壮、可测试和可维护的应用程序,包含一下组件:  带你领略Android Je...

浅谈Android 5959

Android框架组件--Lifecycle的使用

1.前言 Lifecycle是Google推出的一系列的框架组件的其中一个,主要是用来感知Activity和Fragment的生命周期。 本文主要介绍如何使用Lifecycle。 2.一个常见的开发例子 public class TestActivity extends Activity{ @Override protected void onCreate(@Nulla...

四月葡萄的博客 6520

Android Jetpack-Lifecycle

1.LifeCycle activity 和fragment 是有生命周期的,有时候,我们的很多操作需要写在生命周期的方法中,比如下载文件操作等,这样很多情况下会导致在activity的生命周期方法中写越来越多的代码,activity或者fragment 越来越臃肿,代码维护越来越困难。 使用lifecycle就可以很好的解决这类问题。 lifecycle通过实现LifecycleObserver 接口来监听生命周期,然后在activity和fragment中去注册监听。 几个重要的类和接口: .

zenmela2011的专栏 894

4相5线步进电机驱动原理

步进电机驱动

while(1) 3万+

Android Lifecycle 深度解剖:三大类、五种状态、七大事件全面解读!

Lifecycle是 Android 系统中一个重要的概念,它定义了 Activity 和 Fragment 在其生命周期中的各个状态,以及在每个状态下可以执行的操作。理解Lifecycle的实现原理和使用技巧,对于 Android 开发人员来说非常重要。如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

xiaokangss的博客 2055

HMC5883L磁力计驱动开发:I²C通信、校准与FreeRTOS集成

磁力计是惯性导航与电子罗盘系统的核心传感器,其输出原始磁场数据需经精确采集、单位换算与误差补偿才能用于姿态解算。基于各向异性磁阻(AMR)原理的三轴磁力计,如HMC5883L,依赖稳定I²C通信获取12位有符号磁场采样值,并通过增益配置、硬软铁校准及温度补偿提升物理量精度。在嵌入式实时系统中,驱动层须保障数据的时间一致性与抗干扰鲁棒性,避免总线挂死、字节错位或量程误配等典型问题。本文围绕HMC5883L这一广泛使用的停产但仍在产线服役的磁传感器,详解寄存器配置、定点单位转换、八方位校准算法及FreeRTOS

weixin_42594427的博客 145

彻底掌握Android中的Lifecycle

Lifecycle 是状态机 + 观察者模式的结合,通过 ReportFragment 触发事件,驱动 LifecycleRegistry 中所有观察者状态同步,并根据同步结果触发观察者对应的回调方法,这就是它的整体原理。Lifecycle 虽然只是提供了抽象层的组件生命周期监听,但这一改变可以让软件编码灵活性大大加强,LiveData 就是基于 Lifecycle 来实现的。通过使用 Lifecycle,可以编写出更加健壮、可维护的代码,提升应用的性能和用户体验。

白泽的博客 2597

PX4实战指南:通过遥控器通道直连实现舵机PWM控制

本文详细介绍了如何通过PX4飞控实现遥控器通道直连控制舵机PWM输出的完整流程。从硬件准备、遥控器配对到PX4参数配置和硬件连接,提供了实战技巧和常见问题解决方案,帮助无人机爱好者快速掌握舵机控制技术。重点讲解了AUX Passthrough模式设置和PWM参数调整等关键步骤。

weixin_29195217的博客 154

部署OpenClaw(ClawdBot、MoltBot)后访问localhost:18789报1008错误怎么办?

部署openclaw(曾用名ClawdBot、MoltBot)后访问localhost:18789出现1008授权错误❌?本文分享如何快速解决这个问题✅

XiaoqiangClub的博客 1万+

Android Jetpack之LifeCycle

LifeCycle在其内部管理自己的生命周期,从而解藕页面和组件,降低内存泄露发生的可能性,Activity、Fragment、Service、Application均有LifeCycle支持。现在越来越多的公司招聘要求Jetpack是必会项目,Google也在疯狂的更新Jetpack组件,热度完全不亚于Kotlin!如图所示,Jetpack是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。

csdn_aiyang的博客 1036

理想L9高通QAM8797座舱域控制器全拆解|全网独家复现 硬件架构升级、电源散热优化、多屏低延迟交互、车机系统赋能高端智能座舱落地

随着智能汽车向舱驾一体、全域智能化、多模交互方向迭代,传统单一功能座舱芯片已无法满足多屏高刷渲染、全车AI语音、车内视觉感知、高速车载通信的叠加算力需求。2026款全新理想L9作为旗舰级智能SUV,全面搭载高通新一代旗舰座舱域控制器QAM8797,搭配自研马赫M100 AI芯片、国产车规主控芯片,构建起高性能、高可靠、低延迟的车载中央计算平台。

getusushu的博客 378

【Android】Jetpack组件之LifeCycle

Lifecycle组件是Android Jetpack架构组件之一,它提供了一种方法来管理Android组件(如Activity、Fragment和服务)的生命周期。Lifecycle组件帮助你执行与生命周期相关联的操作,确保在适当的时间发生适当的事情,例如,当你的应用进入后台时停止数据刷新,或者在应用回到前台时更新UI。

2301_79828182的博客 1675

STM32驱动HC-SR04超声波模块

本篇文章将带大家使用HAL库驱动HC-SR04超声波模块。超声波模块作为智能小车必备的模块,要学习智能小车的同学是必须掌握好这个模块的使用的。HC-SR04是一种常用的超声波传感器模块,也被称为超声波测距模块,广泛应用于各种自动化控制和测距系统中。它通常由超声波发射器、接收器、控制电路和外壳组成,可以实现非接触式的距离测量。下面是HC-SR04超声波模块的一些特性和技术参数:距离测量范围:2cm ~ 400cm(可调)。测量精度:0.3cm。工作电压:DC 5V。工作电流:15mA。

m0_49476241的博客 7683

华为OD干了两个月,还是跑了

​本人工作了快13年,base南京。2024年2月份由于公司业务变动第一次拿到了公司发的大礼包,同时也面临着失业的问题,我对自己的技术还是很有信心的,但是,找了大概有一个多月时间,发现心意的工作的确不太好找,当然收到挺多家offer,就是薪资不太满意,外包也一直不想去,不过说实话外包给的薪资普遍要比自研的单位要高一些,最后为了钱还是进华为(既然选择外包那就选择好一些的吧),毕竟中年老男人工作不能断太久。

啊渊的专栏 1万+

安卓JetPack篇——LifeCycle原理

具备宿主生命周期感知能力的组件。它能持有组件(如Activity或Fragment)生命周期状态的信息,并且允许其他观察者监听宿主的状态。

y515278178的博客 673

华为OD新系统真题-最小极差分组(C/C++/Py/Java/Js/Go)

华为OD机试 新系统真题【最小极差分组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【最小极差分组】多语言题解。

qq_45776114的博客 586

安卓Jetpack之Lifecycle的使用及原理刨析

我们可以看到,它拥有自己的一套生命周期方法,而这一套方法与fragment或者activity的生命周期相互绑定。那我们就来看看DefaultLifecycleObserver类里面都有什么。很简单在activity里面添加一句话。V18588400509(如果着急,可以直接加微信)首先我们先自定义一个LifeCycle。Q486789970(QQ现在很少用)......

小口口的博客 690

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【Android FrameWork】实战:Jetpack Lifecycle

Android Jetpack Lifecycle组件通过观察者模式解耦生命周期管理,解决传统开发中代码臃肿、资源泄漏等问题。核心包括LifecycleOwner(被观察者)、LifecycleObserver(观察者)、State和Event四个概念。文章详细介绍了使用Gradle Version Catalogs规范配置依赖,并基于DefaultLifecycleObserver接口实现自定义观察者,将生命周期逻辑封装在MyLifecycleObserver中,替代传统Activity/Fragment

u012739527的博客 2249

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android Jetpack架构组件——Lifecycle原理篇

概述 前面我们讲到了lifecycle是如何使用的,但是我们单单知道如何使用它还是不够的,我们需要知道它到底是如何绑定生命周期的。那么本篇我们就讲一下lifecycle的原理篇。 本篇基于Android 9.0源码进行分析,如有不同,注意sdk版本。 Lifecycle是什么? 官方文档是这么描述的,Lifecycle它是一个类,用来存储相关组件的生命周期状态,如Activity或者Fragment等。并且允许其他组件对这些状态进行观察。 我们先简单看一下Lifecycle这个类的源码: public

一个学渣走向android之路 966

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android Jetpack -- Lifecycle

看到这些博客的时候,相信小伙伴们已经看了不少的有关于Android Jetpack的知识了,关于Jetpack的原理,有些文章讲的很好,这里就不重复了,此系列的博客,旨在通过一些很简单的小demo,和大家一起熟悉最基本的用法~ Android Jetpack -- Lifecycle Android Jetpack -- ViewModel & LiveData Android Je...

sinat_33150417的博客 415

Android Jetpack 之 Lifecycle

在android开发的过程中,我们常常需要让一些操作能够感知Activity/Fragment的生命周期,从而实现在活动状态下允许操作,而在销毁状态下需要自动禁止操作,释放资源,防止内存泄露。在我们的开发中,我们经常需要知道 activity 的生命周期,从而做一些资源释放或控制逻辑,Glide的做法,就是给activity添加一个 隐形的 fragment,从而感知 activity 的生命周期变化。在使用mvp写页面时,p中需要感知Activity或Fragment的生命周期,以进行对应的处理。

wjp52的博客 830

Android JetPack——Lifecycle

public abstract class Lifecycle {} 根据文档的注释,这个类可以帮助我们创建一个拥有Android生命周期的对象。比如Fragment和Activity。 需要做到三点: 生命周期拥有者,如Fragment、Activity、dialog、Service等,或者自己创建一个具有一定生命周期的class。 生命周期的观察者,如请求数据的接口、动画等,或者自己创建一...

android_hl的博客 439
上一篇: Java 类的主动使用和被动使用
zhoushenxian
博客等级 码龄12年 453粉丝 549原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值