Jetpack中Lifecycle的使用

Lifecycle

添加依赖

implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

Application生命周期绑定

创建observe

需要声明一个ApplicationObserve类实现LifecycleObserver(或者使用内部类的方式,但是不推荐)

ApplicationObserve中声明各个生命周期,需要用到@OnLifecycleEvent注解

应用新建时会调用onCreate,进入后台会调用onStop,进入前台会调用onResume

public class ApplicationObserve implements LifecycleObserver {//只是应用的生命周期  与activity无关
    private static String TAG = "ApplicationObserve";
    
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    public void onCreate() {
        Log.i(TAG, "onCreate: Lifecycle.Event.ON_CREATE");
    }
​
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    public void onResume() {
        Log.i(TAG, "onResume: Lifecycle.Event.ON_RESUME");
    }
​
    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    public void onStop() {
        Log.i(TAG, "onStop: Lifecycle.Event.ON_STOP");
    }
}

与Application绑定

在Application加入这行代码即可

 
ProcessLifecycleOwner
    .get()
    .getLifecycle()
    .addObserver(new ApplicationObserve());

Service、Activity、Fragment生命周期绑定

同样需要创建一个observer类来实现LifecycleObserver,注解也是用到@OnLifecycleEvent,只是绑定方式与Application有些不一样,在service中直接getLifecycle()即可,Activity、Fragment同理

public class MyLocationService extends LifecycleService {
    public MyLocationService() {
        MyLocationObserver observer = new MyLocationObserver(this);
        getLifecycle().addObserver(observer);// 添加observer
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值