当前位置:主页 > android教程 > Android Jetpack LifeCycle

Android Jetpack组件中LifeCycle作用详细介绍

发布:2023-03-08 18:00:01 59


我们帮大家精选了相关的编程文章,网友雍昊英根据主题投稿了本篇教程内容,涉及到Android、Jetpack、LifeCycle、Android、LifeCycle、原理、Android Jetpack LifeCycle相关内容,已被371网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

Android Jetpack LifeCycle

Jetpack

Jetpack,我觉得翻译为“飞行器”更好听,因为Google针对编程历史乱象,整理出一套组件库,帮助开发者创造更完美的应用作品。现在市面上,很多公司招聘面试要求渐渐把Jetpack看作必会技能,Google也在疯狂的安利Jetpack组件,和Kotlin一样属于亲儿子一样了。

1、那么Jetpack是什么呢

如图所示,Jetpack是一个由多个技术库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。

2、为何使用Jetpack

  • 遵循最佳做法:Android Jetpack 组件采用最新的设计方法构建,具有向后兼容性,可以减少崩溃和内存泄露。
  • 消除样板代码:Android Jetpack 可以管理各种繁琐的Activity(如:后台任务、导航和生命周期管理),以便你可以专注于打造出色的应用。
  • 减少不一致:这些库可在各种Android 版本和设备中以一致的方式运作,助你降低复杂性!

3、Jetpack与AndroidX

  • AndroidX命名空间中包含Android Jetpack库
  • AndroidX代替Android Support Library
  • AAC(Android Architecture Component) 中的组件并入AndroidX
  • 其他一些需要频繁更新和迭代的特性也并入了AndroidX

LifeCycle

LifeCycle顾名思义是用来帮助开发者建立可感知生命周期的jetpack组件之一。LifeCycle在其内部管理自己的生命周期,从而解藕页面和组件,降低内存泄露发生的可能性,Activity、Fragment、Service、Application均有LifeCycle支持。

1、LifeCycle的作用

如图所示,LifeCycle用来监听Activity与Fragment的生命周期变化。

2、LifeCycle应用

例如,一般我们在Activity中使用计时器时会在生命周期onPause和onReSume对其操作。因为计时器是长周期的变量,如果Activity关闭了,但没有关闭计时器,就会继续持用activity的引用造成内存泄露。

1、设计组件

//自定义了控件,继承了Chronometer计时器,实现了LifecycleObserver接口
@SuppressLint("ViewConstructor")
class MyChronometer : Chronometer, LifecycleObserver {
    constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
    var elapsedTime: Long = 0
    //计时开始 ,方法添加了注解
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    open fun startMeter() {
        base = SystemClock.elapsedRealtime() - elapsedTime
        start()
    }
    //计时暂停 ,方法添加了注解
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    open fun stopMeter() {
        elapsedTime = SystemClock.elapsedRealtime() - base
        stop()
    }
}

2、使用组件

class Step2Activity : AppCompatActivity() {
    private var chronometer: MyChronometer? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //组件
        chronometer = findViewById(R.id.chronometer)
        //添加观察者
        lifecycle.addObserver(chronometer!!)
    }
}

3、总结LifeCycle的使用

1、继承LifeCycle Observer方法

class lifecycleTest : LifecycleObserver {
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    fun onCreate() {
     }
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onStart() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun onResume() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    fun onPause() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onStop() {
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    fun onDestroy() {
    }
}

2、添加观察者

lifecycle.addObserver(lifecycleTest)

到此这篇关于Android Jetpack组件重LifeCycle作用详细介绍的文章就介绍到这了,更多相关Android Jetpack LifeCycle内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • Android 动态加载 so实现示例详解

    发布:2023-03-05

    这篇文章主要为大家介绍了Android 动态加载 so实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android内置SQLite的使用详细介绍

    发布:2023-03-09

    这篇文章主要介绍了Android内置SQLite的使用详细介绍,文章通过文章展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下


  • Android SharePreferences与数据库SQLite存储实现方法介绍

    发布:2023-03-13

    这篇文章主要介绍了Android SharePreferences与数据库SQLite用于存储的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧


  • Android简单实现天气预报App

    发布:2023-03-08

    这篇文章主要为大家详细介绍了Android简单实现天气预报App,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Android获取设备传感器的方法

    发布:2023-03-11

    这篇文章主要为大家详细介绍了Android获取设备传感器的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Android中FileProvider的各种场景应用详解

    发布:2023-03-05

    这篇文章主要为大家介绍了Android中FileProvider的各种场景应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android虚拟机与类加载机制详情

    发布:2023-03-05

    这篇文章主要介绍了Android虚拟机与类加载机制详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下


  • Android开发使用RecyclerView添加点击事件实例详解

    发布:2023-03-02

    这篇文章主要为大家介绍了Android开发使用RecyclerView添加点击事件实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


网友讨论