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