Lifecycle的基本使用

Lifecycle是一个抽象类,用来存储生命周期状态的。

Lifecycle是Android中引入的主要用来观察和监听Activity、Fragment生命周期的一套观察者机制,还可以绑定Service和Application的生命周期,其实只要有生命周期的组件都可以跟它绑定。而在Android中大多数的组件都是有生命周期的。

在Lifecycle机制中有两个核心类。

一个是LifecycleOwner接口,该接口有一个getLifecycle()方法,实现了这个接口的类就可以作为一个被观察者,AppCompatActivity和Fragment就实现了这个接口,所以它们的生命周期就可以被观察和监听

另一个是LifecycleObserver接口,实现了这个接口的类就可以作为一个观察者。当然你也可以换成实现LifecycleObserver接口的子类,比如DefaultLifecycleObserver,这个接口是LifecycleObserver的子类的子类,实现它也是可以作为一个观察者,来观察Activity、Fragment生命周期的。

基本使用如下:

1、自定义一个观察者类

class CustomLifecycleObserver : LifecycleObserver {

    //监听onStart生命周期
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun method2() {
        Log.e("znh", "LifecycleObserver_ON_START...")
    }

    //监听onResume生命周期
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun method3() {
        Log.e("znh", "LifecycleObserver_ON_RESUME...")
    }
}

2、创建一个AppCompatActivity作为被观察者

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //将自定义的观察者对象添加到观察者集合中
        //通过lifecycle将观察者和被观察者关联起来
        lifecycle.addObserver(CustomLifecycleObserver())
    }

    override fun onStart() {
        super.onStart()
        Log.e("znh", "onStart...")
    }

    override fun onResume() {
        super.onResume()
        Log.e("znh", "onResume...")
    }
}

3、打开MainActivity观察生命周期方法日志打印

从打印的日志中可以看出,当Activity中的生命周期方法回调时,都会回调LifecycleObserver中对应的监听方法,这样就完成了对Activity生命周期的观察和监听。

原文链接

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值