Android JitPack 之 Lifecycle

简介: Android JitPack 之 Lifecycle

Lifecycler 被包含在 support 及之后的包中,如果我们的依赖支持库在


26.1.0 以上,则不需要额外导入 Lifecycle 库


如果版本下小于 26.1.0 ,就需要单独导入 Lifecycle库:


 implementation "android.arch.lifecycle:runtime:1.1.1"


如果项目迁移到了 AndroidX,可以用下面的方式引入


   implementation "androidx.lifecycle:lifecycle-runtime:2.0.0"


如果是 26.1.0 以上,则就是


   implementation 'com.android.support:appcompat-v7:28.0.0'


使用


1,创建 MyObserver 实现 LifecycleObserver 接口


public class MyObserver implements LifecycleObserver {
    private static final String TAG = "MyObserver";
    //该注解表示方法需要监听指定的生命周期时间
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    public void connectListener(){
        Log.e(TAG, "connectListener:  onResume" );
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    public void disconnectListener(){
        Log.e(TAG, "disconnectListener: onPause");
    }
}


2, 让 Activity 继承自 AppCompatActivity


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //将 Lifecycle 对象和LifecycleObserver 对象进行绑定
        getLifecycle().addObserver(new MyObserver());
    }
/*


只需要一行代码,就可以完成了。


3,如果 Activity 继承的 普通的ivity 呢?使用方法如下


public class MainActivity extends Activity implements LifecycleOwner {
    private LifecycleRegistry mLifecycleRegistry;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mLifecycleRegistry = new LifecycleRegistry(this);
        getLifecycle().addObserver(new MyObserver());
        mLifecycleRegistry.markState(Lifecycle.State.CREATED);
    }
    @Override
    protected void onResume() {
        super.onResume();
        mLifecycleRegistry.markState(Lifecycle.State.RESUMED);
    }
    @Override
    protected void onPause() {
        super.onPause();
        mLifecycleRegistry.markState(Lifecycle.State.RESUMED);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mLifecycleRegistry.markState(Lifecycle.State.DESTROYED);
    }
    @NonNull
    @Override
    public Lifecycle getLifecycle() {
        return mLifecycleRegistry;
    }
}


继承自 Activity 后就需要自己创建 Lifecycle 对象,这就需要自己实现 LifecycleOwner 接口,滨海自己进行事件的分发了。


4,Lifecycle 提供了 查询当前组件所处的生命周期的方法:


lifecycle.getCurrentState().isAtLeast(STARTED)


5,在碎片中使用 Lifecycle ,


和在 Activty 中使用没有太大区别,只不过有些生命周期没有,比如 onDestroyView。


相关文章
|
Java Android开发
Android如何通过Gradle发布Android依赖库(aar)到 jitpack 公共仓库
Android如何通过Gradle发布Android依赖库(aar)到 jitpack 公共仓库
682 0
|
API 开发工具 Android开发
Android 发布开源库到 JitPack (详细步骤)
Android 发布开源库到 JitPack (详细步骤)
481 0
Android 发布开源库到 JitPack (详细步骤)
|
安全 Android开发
Android Jetpack系列之Lifecycle
`Lifecycle`可以让某一个类变成`Activity`、`Fragment`的生命周期观察者类,监听其生命周期的变化并可以做出响应。`Lifecycle`使得代码更有条理性、精简、易于维护。
125 0
|
存储 Android开发
Android JitPack 之 LiveData 和 ViewModel
Android JitPack 之 LiveData 和 ViewModel
|
Java Android开发
Android如何通过Gradle发布java依赖库(jar)到 jitpack 公共仓库(—)
Android如何通过Gradle发布java依赖库(jar)到 jitpack 公共仓库(—)
370 0
|
存储 Java Android开发
android LifeCycle-简单使用和详细原理解析
android LifeCycle-简单使用和详细原理解析
614 0
android LifeCycle-简单使用和详细原理解析
|
缓存 Android开发
Android Jetpack系列之Lifecycle
Android Jetpack系列之Lifecycle
863 0
|
缓存 Java 5G
程序员必懂Android技巧之Lifecycle源码
巴西副总统莫朗当地时间3日在一个视频会议上表示,巴西不担心美方的威胁和施压,不会阻止华为参与该国的5G建设竞标,华为公司掌握的技术远超其它竞争对手。
|
Android开发 Java 容器
Android官方架构组件:Lifecycle详解&原理分析
应该是 Android Jetpack 讲解的最好的博客系列: Android官方架构组件Paging:分页库的设计美学 Android官方架构组件Navigation:大巧不工的Fragment管理框架 Android官方架构组件Lifecycle:生命周期组件详解&原理分析 概述 在过去的谷歌IO大会上,Google官方向我们推出了 Android Architecture Components,其中谈到Android组件处理生命周期的问题,向我们介绍了 Handling Lifecycles。
2207 0

热门文章

最新文章

  • 1
    Android历史版本与APK文件结构
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 5
    【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
  • 6
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 8
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
  • 9
    Android实战经验之Kotlin中快速实现MVI架构
  • 10
    即时通讯安全篇(一):正确地理解和使用Android端加密算法