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 公共仓库
670 0
|
安全 Android开发
Android Jetpack系列之Lifecycle
`Lifecycle`可以让某一个类变成`Activity`、`Fragment`的生命周期观察者类,监听其生命周期的变化并可以做出响应。`Lifecycle`使得代码更有条理性、精简、易于维护。
120 0
|
API 开发工具 Android开发
Android 发布开源库到 JitPack (详细步骤)
Android 发布开源库到 JitPack (详细步骤)
481 0
Android 发布开源库到 JitPack (详细步骤)
|
存储 Android开发
Android JitPack 之 LiveData 和 ViewModel
Android JitPack 之 LiveData 和 ViewModel
|
Java Android开发
Android如何通过Gradle发布java依赖库(jar)到 jitpack 公共仓库(—)
Android如何通过Gradle发布java依赖库(jar)到 jitpack 公共仓库(—)
364 0
|
存储 Java Android开发
android LifeCycle-简单使用和详细原理解析
android LifeCycle-简单使用和详细原理解析
593 0
android LifeCycle-简单使用和详细原理解析
|
缓存 Android开发
Android Jetpack系列之Lifecycle
Android Jetpack系列之Lifecycle
859 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。
2201 0

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 10
    Android学习自定义View(四)——继承控件(滑动时ListView的Item出现删除按钮)