草庐IT

LiveData_LifecycleBoundObserver_L

全部标签

Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(二)

上文,我们就一个实例需求,引入了LiveData进行了实现,大家通过前后的编码实现方案对比,可以感受到LiveData的好用。不由的为jetpack组件的开发者点赞。AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(一)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(二)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(三)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(四)本文,我们在深入阅读LiveData源码之前,先想一下,如果是我们自己去实现这样的一个框架,会遇到哪些问题

LiveData 面试题库、解答、源码分析

引子--LiveData是能感知生命周期的,可观察的,粘性的,数据持有者。LiveData用于以“数据驱动”方式更新界面。换一种描述方式:LiveData缓存了最新的数据并将其传递给正活跃的组件。这一篇就LiveData的面试题做一个归总、分析、解答。1\.LiveData如何感知生命周期的变化?-------------------------先总结,再分析:>*Jetpack引入了Lifecycle,让任何组件都能方便地感知界面生命周期的变化。只需实现LifecycleEventObserver接口并注册给生命周期对象即可。>*LiveData的数据观察者在内部被包装成另一个对象(实现了L

Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(四)

前面,经过LiveData的使用、自我编程实现LiveData框架、JetpackLiveData源码探索几节的学习,相信大家都收益匪浅。AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(一)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(二)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(三)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(四)本文,目的很简单,对于LiveData系列学习,做一个总结,一方面是原理、源码的总结,一方面是分析过程中,发现的LiveData的诸多

android - 来自 Transformation 的数据绑定(bind) LiveData - Android Kotlin

我正在学习kotlin和android架构组件。我有一个谷歌地图上的map切换按钮的简单用例。我想使用数据绑定(bind)将map切换按钮标签绑定(bind)到我的ViewModel中的MutableLiveData字段。我通过Activity中的onCreate方法在MapViewModel中设置mapTypeval。如果我理解正确,这应该会触发mapLabelval由于使用Transformations.map而发生变化。它不工作...为什么?这是我的版本:AndroidStudio3.2Canary4kotlin_version='1.2.21'支持="27.1.0"arch_c

java - 为什么 LiveData setValue 或 PostValue 在 View 中只触发一次 onChange?

LiveDatasetValue应该已经触发了Activity中的onChanged方法,但是它只在第一次调用,在我尝试进行分页之后,它中断并且不再调用onChanged,尽管我的响应确实成功并且我在日志中看到它。setValue/postValue有什么问题?这是一个错误吗?我应该自己实现观察者模式吗?那么使用LiveData有什么意义呢?我的寻呼仅在这已经2-3天后不起作用.....MainActivity类publicclassMainActivityextendsAppCompatActivityprivateMutableLiveData>mLivePhotos;//some

android - 使用 Realm 和 LiveData。将 LiveData<RealmResults<CustomModelObject>> 转换为 LiveData<List<CustomModelObject>>

我正在试用Realm以及包括LiveData在内的Android架构组件。我一直在关注Google的应用程序架构指南:https://developer.android.com/topic/libraries/architecture/guide.html...用Realm代替Room。我有一切工作使用:LiveData>从我的存储库层直接通过ViewModel到View。我认为从存储库返回更多通用类型可能会更好,所以LiveData>而不是LiveData>.这是我遇到问题的代码fragment:@NonNull@OverrideprotectedLiveData>loadFromD

android - 从 ViewModel 观察存储库 LiveData 并通知 UI

Google表示不可能从ViewModel观察LiveData:[...]HoweverViewModelobjectsmustneverobservechangestolifecycle-awareobservables,suchasLiveDataobjects.[...]我会在ViewModel中处理repo.login()结果并通知UI认为这两个SingleLiveEvents,这可能吗?classRepository{//....//funlogin(user:String,password:String):LiveData{/*...*/}}classLoginViewMo

Android - 在 LiveData 扩展对象的属性上进行数据绑定(bind)

我目前开始使用数据绑定(bind)库,在我的View模型中我有一个扩展的LiveData对象:publicclassScannerViewModelextendsAndroidViewModel{/**MutableLiveDatacontainingthescannerstatetonotifyMainActivity.*/publicScannerLiveDatascannerLiveData;扫描仪实时数据:publicclassScannerLiveDataextendsMutableLiveData{publicbooleanmScanningStarted;publicbo

java - 如何在 Android 项目的纯 Java 模块中使用 LiveData?

我尝试在纯Java模块中使用LiveData。我在modulegradle文件中添加了依赖,但是Androidstudio无法解析依赖。说LiveData没有解决。它只适用于Android模块吗?还是我错过了什么? 最佳答案 我假设您有一个具有java模块(如库)的Android项目。问题是,您在java库中面临用户LiveData的问题。您的java库可能会向Android项目返回一些结果,然后您正在使用它。您是否有可能在Android项目中接收响应,并在获得该响应或模型后将其放入具有相同响应类型的LiveData对象中。

android - 在多个进程中获取 LiveData 更新

在我的Android应用程序中,我使用RoomAPI来保存来自网络的数据。该应用程序分为多个进程,其中一个进程负责同步数据(实现SyncAdapter)。UI在不同的进程上运行,它有自己的DAO来访问数据库。我的问题是,当SyncAdapter将新数据写入数据库时​​,我在UI进程中查询的LiveData没有得到任何更新。因为数据库在进程之间共享,所以我希望在所有具有反射(reflect)数据库的LiveData的进程上调用OnChanged,这意味着所有进程都可以观察数据库变化 最佳答案 room2.1.0中引入的enableMu