public class ApplicationObsever implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStart() {
Log.d("ApplicationObsever", "onStart");
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void onCreate() {
Log.d("ApplicationObsever", "onCreate");
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void onResume() {
Log.d("ApplicationObsever", "onResume");
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void onPause() {
Log.d("ApplicationObsever", "onPause");
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onStop() {
Log.d("ApplicationObsever", "onStop");
Lifecycle是Jetpack提供的一个用于监听生命周期的库。我们知道在使用Activity和Fragment的时候,特别是两者一起使用的时候,生命周期将变得非常的复杂。而且我们需要在Activity和Fragment的生命周期方法里面执行非常多的操作,如地理位置,打开关闭资源等。这会造成很高的耦合。Lifecycle就是为了减低生命周期的耦合而设计的。目的是让各种资源自己监听生命周期变化,在独立的类里面实现相应的生命周期逻辑。Lifecycle已经包含在androidx里面,也就是下面的包,默认情况
生命周期这个简单而又重要的知识相信大家早已耳熟能详。假设我们现在有这样一个简单需求:
这个需求只是一个实例,在真实的开发中当然不可能有这样的需要:
在Activity 可见的时候,我们去做一个计数功能,每隔一秒 将计数加1 ,当Activity不可见的时候停止计数,当Activity被销毁的时候 将计数置为0
OK,So easy~ ,新建Main3Activity 编写代码如下所示:
public class Main3Act
LifeCycle的作用是感知组件(Activity/Fragment)的生命周期 , 并在合适的生命周期执行分配的任务.
1.监听组件生命后期
假设我们此时有一个Util类,其中有两个方法需要分别在Activity的onStart和onDestory的时候执行,我们可以先让它实现LifecycleObserver:
class LifecycleUtil : LifecycleObserver ...
app级别下的build.gradle添加以下内容
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.2.0'
Android_Jetpack:LifeCycle在Activity/Fragment、Service以及Application中的应用一、使用LifeCycle解耦Activity/Fragment与组件二、使用LifeCycleService解耦Service与组件三、使用ProcessLifecycleOwner监听应用程序的生命周期
最近重新捡起了Android开发,对Jetpack很感兴趣,就专门研究了下。这篇主要讲的就是系统组件与普通组件解耦的LifeCycle。LifeCycle可以帮助开发者
传送门:Lifecycle 官网文档是学习最好的资料
Lifecycle 是构建生命周期感知型组件,这些组件可以根据 Activity 或 Fragment 的当前生命周期状态调整行为。生命周期感知型组件可执行操作来响应另一个组件的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。可以有效避免内存泄漏,解决Android生命周期常见难题。Lifecycle框架使用观察者模式监听被观察者的生命周期的变化。
Lifecycle 框架涉及
LifeCycle 基础介绍简介AppCompatActivity中的使用Activity 中使用Application 中使用,监听app 声明周期变化在service中使用
简单的说就是用来监听Activity、Fragment等组件的生命周期变化。方便解耦,是google 官方推荐的架构组件。
两个重要的角色
LifeCycleOwner 生命周期拥有者,即Activity与Fragment(也可自定义,但局限性大)
LifeCycleObserver 生命周期观察者,可以是任何类,常见的有m
一、Jetpack是什么
Jetpack是Google为了解决Android架构问题而引入的一套库、工具和指南,可以帮助开发者更轻松地编写应用程序。Jetpack包含了架构组件、基础组件、行为组件和界面组件;这里主要介绍架构组件的学习,最后再介绍google官方推出的架构。
架构组件包含了:
Lifecycles 生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。
Navigation
它管理应用中多个屏幕之间的复杂导航、过渡动画、深层链接以及
Lifecycle是Android Architecture Components的一员,这玩意儿挺方便的,它是能感知Activity和Fragment的生命周期的.
一、使用Lifecycle
1. 引入Lifecycle
我们来看一下如何引入:
非androidX项目引入:
//运行时
implementation "android.arch.lifecycle:runtime:1.1.1...
Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。Jetpack 的构成,如下图所示:
Jetpact 库由如下4个方面构成:Jetpack 库的 import 路径都是 androidx.xxx,例如下例的appcompact、recyclerview等库:
用 Android Studio 新建项目时,默认就会使用 Jetpack 库。可以在项目的 gradle.prope
使用生命周期感知型组件处理生命周期
生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。
一种常见的模式是在 Activity 和 Fragment 的生命周期方法中实现依赖组件的操作。但是,这种模式会导致代码条理性很差而且会扩散错误。通过使用生命周期感知型组件,您可以...