
jetpack
文章平均质量分 75
详细讲解jetpack组件
AD钙奶-lalala
叩首问路 码梦为生
展开
-
ViewBinding基类封装的正确打开方式
我们在日常开发中,为了避免findViewById这种低效的代码编写,可以基于ViewBinding库封装基类。但是网上很多是不正确的,今天就贴出正确的打开方式。Boolean对于java来说并不是基本数据类型,对于Kotlin才是基本数据类型。特别注意不要写成这样!原创 2023-01-05 17:30:23 · 578 阅读 · 0 评论 -
databinding 一篇文章就够了
关于IDE自动转databinding布局的说明:将鼠标停在最外层的constraintLayout的布局的里面的空闲位置,然后同时按option+enter(Mac),就会出现convert to data binding layout提示。name是名称,可以随便写,一般最好与bean一致,type就是具体定义的类型。@{user.***}实现了数据的引用。注意,原有的设置布局的方式要换成通过DataBindingUtil的方式。运行一把:这样就完成了最基本的databinding的使用了。原创 2022-09-01 23:25:35 · 750 阅读 · 0 评论 -
LiveData粘性事件原理解析
有些同学可能有这样的疑惑:第二个activity还没有创建(还没有observe),为啥在第二个activity还能监听到livaData的数据变化?注释1处:将SecondActivity对象和Observer对象封装到LifecycleBoundObserver对象里面去;注释2处:将Observer对象作为键,LifecycleBoundObserver对象作为值放到mObservers里面去;大家觉得SecondActivity的吐司会不会弹呢?注释3处:将wrapper和owner生命周期绑定。原创 2022-08-20 10:05:12 · 482 阅读 · 0 评论 -
LiveData 一篇文章就够了
通过runnable方法通过Handler在主线程执行,最后也是调用了setValue。注意注释1处,看下mDelegate为何物?注意:子线程要用postValue。使用是不是非常的简单!原创 2022-08-17 23:43:56 · 213 阅读 · 0 评论 -
Lifecycle 一篇文章就够了
使用比较简单,下面来重点分析一下原理吧。原创 2022-08-14 22:59:27 · 783 阅读 · 0 评论 -
谈谈WorkManager线程池的设计
activity里面先构建data,然后通过setInputData传入data,最后woker里面从params里面接收data。注意:这个doWork方法是异步的,后面分析源码时会讲到。我不知道大家在看WorkManager源码的时候有没有这样一个疑惑,就是一个线程池里面执行一个Runnable,然后这个Runnable里面好像又有一个线程池执行Runnable,这样不就是线程里面套线程了吗?很显然,Google是不可能犯这样低级的错误的,那么我们就一起来看下这个线程池倒计时怎么设计的吧!...原创 2022-08-14 16:44:25 · 349 阅读 · 0 评论 -
WorkManager 一篇文章就够了
activity里面先构建data,然后通过setInputData传入data,最后woker里面从params里面接收data。既然activity可以向worker里面发送data,那么woker里面该如何回传data呢?我们工程中一定会有大量activity和WorkManager传递参数的场景,那么该如何传递参数呢?很明显,WorkManager里面又封装了LiveData,是通过LiveData监听数据返回的。注意:这个doWork方法是异步的,后面分析源码时会讲到。......原创 2022-08-13 16:55:39 · 1400 阅读 · 0 评论 -
Jetpack之Lifecycle使用及原理
定义:Lifecycle是Android Architecture Components的一员,它是能感知Activity和Fragment的生命周期的.Lifecycle的使用step1: implementation "androidx.lifecycle:lifecycle-runtime:2.0.0" implementation "androidx.lifecycle:lifecycle-extensions:2.0.0" implementation "and原创 2021-12-20 22:43:47 · 355 阅读 · 1 评论