Android 官方架构组件——Lifecycle简介

Lifecycle组件是android.arch.lifecycle包的一部分,用于创建感知Activity和Fragment生命周期的类。引入Lifecycle的原因是解决在组件销毁后仍进行回调导致的问题。Lifecycle包含LifeCycleOwner和LifeCycleObserver,前者如Activity和Fragment,后者是观察者,通过注解@OnLifecycleEvent进行生命周期监听。使用Lifecycle可以简化代码,提高维护性,并允许自定义LifecycleOwner。
摘要由CSDN通过智能技术生成

一、前言

什么是Lifecycle?

Lifecycle 组件指的是 android.arch.lifecycle 包下提供的各种类与接口,可以让开发者构建能感知其他组件(主要指Activity 、Fragment)生命周期(lifecycle-aware)的类。

为什么要引进Lifecycle?

要了解Lifecycle之前,首先要知道为什么要引用Lifecycle?我们可以举一个例子

Activty

class TwoActivity : AppCompatActivity() {
   
    var tv: TextView? = null
    var work = Work()
    override fun onCreate(savedInstanceState: Bundle?) {
   
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_two)
        tv = findViewById(R.id.tv_two)
        work.setCallback {
   
            tv?.text = "更新界面"
            if (tv != null){
   
                Log.e("work", "tv未释放")
            }
        }

        tv?.setOnClickListener{
    v: View? ->
            Log.e("work", "start")
            work.workTime()
        }
    }


    override fun onDestroy() {
   
        super.onDestroy()
        Log.e("work", "onDestroy")
    }
}

耗时异步回调方法Work

class Work {
   
    private val handler = Handler()
    lateinit var click: () -> Unit
    fun workTime() {
   
        thread {
   
            Thread.sleep(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值