JetPack 学习之Lifecycle系列课程一

JetPack 学习之Lifecycle系列课程一

前言:

​ 近几年Android技术更新迭代比较快速,每一年就有新的知识出现; 近些年笔者的工作重点从App切换到了Android HAL层的开发;在HAL层的开发工作中,主要是使用c语言.并在此过程中,发现自己对计算机底层的知识了解太少,大量时间用于底层知识的重新学习.对Android App新的知识投入的力度不够,没有跟上主流开发者的节奏;近几年想重新回到App的开发,准备重学Android;

问题一:在基类中实现LifecycleObserver的所有方法, 然后在具体类中重写需要关心的生命周期的方法,这种方式lifecycle怎么去知道你最终调用的类跟函数的?

上面的问题,根据下面的代码,可以解释如下这样:GenericLifecycleLocationListener 是基类, TestLifecycleLocationListener 是具体类, Lifecycle 是怎么调用到最终具体类的函数的,是通过基类调用的,还是可以直接跨过基类

public class GenericLifecycleLocationListener implements LifecycleObserver {

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    void onCreateX(LifecycleOwner owner) {
        System.out.println("GenericLifecycleLocationListener onCreateX");
    }


    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    void onStartX(LifecycleOwner owner) {
    }


    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    void onStop(LifecycleOwner owner) {
    }


    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume(LifecycleOwner owner) {
    }


    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    void onPause(LifecycleOwner owner) {
    }


    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    void onDestory(LifecycleOwner owner) {
    }

}
public class TestLifecycleLocationListener extends GenericLifecycleLocationListener {
    public TestLifecycleLocationListener(OnLocationChangedListener onLocationChangedListener) {
        super(onLocationChangedListener);
    }

    @Override
    void onCreateX(LifecycleOwner owner) {
        super.onCreateX(owner);
        System.out.println("TestLifecycleLocationListener onCreateX");
    }
}
public class MainActivity extends ComponentActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.out.println("MainActivity---> onCreate;");

        getLifecycle().addObserver(new TestLifecycleLocationListener());

    }

}

在测试界面,通过使用如下方法,去关联Lifecycle的

getLifecycle().addObserver(new TestLifecycleLocationListener());

通过在java 工程中模拟 android端的调用,整个输出结果如下:

Lifecycle

可以看出,最终的基类的onCreateX 跟派生类的OnCreateX都会被调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想全栈程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值