问题标签 [mutablelivedata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - LiveData 防止在开始观察时收到最后一个值
LiveData
开始观察时是否可以阻止接收最后一个值?我正在考虑LiveData
用作事件。
例如显示消息、导航事件或对话触发器等事件,类似于EventBus
.
ViewModel
与fragment之间的通信有关的问题,谷歌让我们LiveData
用数据更新视图,但是这种类型的通信不适合我们只需要用单个事件更新视图一次,而且我们不能保存视图的引用ViewModel
并调用一些方法,因为它会造成内存泄漏。
我发现了类似的SingleLiveEvent - 但它仅适用于 1 个观察者,而不适用于多个观察者。
- - 更新 - -
正如@EpicPandaForce所说“没有理由将LiveData用作它不是的东西”,问题的意图可能是MVVM中视图和ViewModel之间的通信与LiveData
android - LiveData(MutableLiveData) 和数据绑定上升错误(调用观察者方法失败)
我有一个使用 ViewModel 和 MutableLiveData 将实时数据绑定到我的 UI 的应用程序。几个小时后,我的时间西化了!并查看互联网上的所有样本,我找不到问题的原因。
我的活动:
还有我的模特课:
和布局(我在这里清理了额外的代码):
在运行时和创建活动时,我收到此错误:
java.lang.RuntimeException:无法启动活动ComponentInfo{googlearchitecturecomponents.ferdos.com.dagger211/googlearchitecturecomponents.ferdos.com.dagger211.detail.DetailActivity}:java.lang.RuntimeException:调用观察者方法失败------ - - 堆栈跟踪 - - - - -
请帮我解决这个令人困惑的错误!
android - Android房间一次加载多个数据如何知道所有请求都完成了
所以我有Room
数据库,我MutableLiveData
用来在一个屏幕中从数据库加载four
列表这四个列表中的每一个都有单独callbacks
的,在加载数据时调用,我有progress bar
我在数据开始加载时显示的,我想progress bar
在所有四个列表时隐藏它列表已加载,但问题是回调可能会因为各种延迟而随机触发,所以我有什么选择来确定何时加载所有列表?
java - 使用 Retrofit/Rxjava 进行数据绑定/实时数据处理配置更改
请看这段代码:
主要活动:
MutableLiveData
在xml布局中定义:
<variable name="user" type="android.arch.lifecycle.MutableLiveData<test.databindingtemplate.ViewModels.User>"/
>
用户的每个字段都必须通过数据绑定来控制:
这很好用,跟踪配置更改并将其填充到 gui(例如,当我在“名称”字段中键入内容时,屏幕旋转时值仍然存在)。
接下来,我想从 rest webservice - Retrofit/RxJava 实现刷新用户详细信息,并且我想在数据加载过程中显示繁忙指示器,例如,在onCreate
方法中:
现在我不确定如何正确处理配置更改 - 当显示繁忙指示器时,应该在屏幕旋转更改后重新创建它。由于MutableLiveData
处理配置变化很好,我无法找到任何解决方案(除了“经典”方式)来解决我在这种情况下加载指示器和处理结果的问题。
你能给我指出正确的方向吗?
[编辑] getUserDetails 声明:
@user8035311
我修改了您的 github 示例以触发按钮单击时的模拟数据加载,这种方式(按钮已添加到布局中):
但这不起作用。任务在屏幕旋转时中断,但以下情况除外:
06-27 09:05:18.737 11829-11829/app.rxrotation.com.architecturecomponentsrxrotation E/WindowManager: android.view.WindowLeaked: Activity app.rxrotation.com.architecturecomponentsrxrotation.MainActivity 泄露了原本的窗口 DecorView@5b16e38[]在 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:346) 在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93) 在 android.app 的 android.view.ViewRootImpl.(ViewRootImpl.java:485) .Dialog.show(Dialog.java:330) at app.rxrotation.com.architecturecomponentsrxrotation.MainActivity.lambda$onCreate$1$MainActivity(MainActivity.java:35) at app.rxrotation.com.architecturecomponentsrxrotation.MainActivity$$Lambda$0。 onClick(Unknown Source:4) at android.view.View.performClick(View.java:6294) 在 android.os.Handler.handleCallback(Handler.java:790) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.view.View$PerformClick.run(View.java:24770) 在android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal。 os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:807)main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:807)
在我第二次单击按钮后,数据加载甚至没有执行。
android - 如何使用 LiveData + Retrofit 在 30 分钟内缓存数据?
我正在遵循使用 LiveData 的 Android 指南:https ://developer.android.com/jetpack/docs/guide ,我可以拨打电话并获取对象列表,但我不明白如何缓存该列表对象,在示例中,我不确定如何定义类 UserCache,而且,我不知道如何添加缓存时间。
你能指点我怎么做吗?
这是课程:
}
谢谢
android - 如何使用 livedata 进行多个网络调用?
我正在做一个项目,我正在尝试使用数据绑定来实现 Android 架构组件。我有一个活动、视图模型和存储库,我现在正在创建一个登录页面。我必须创建两个存储库函数以使用户登录,第一个函数将返回 uid,通过传递此 uid,第二个函数将返回详细信息。一切都完成后,我只想将用户重定向到内页。我尝试过 Transformations.switchMap,但它不起作用。请帮忙...
这是我的视图模型
这是我的回购
android - MutableLiveData 中 setValue() 和 postValue() 的区别
有两种方法可以改变 的值MutableLiveData
。setValue()
但是& postValue()
in之间有什么区别MutableLiveData
。
我找不到相同的文档。
这是MutableLiveData
Android的类。
android-viewmodel - 从 Room 观察 LiveData 会导致 PagedListAdapter 刷新,ViewModel 也会在方向更改时刷新数据
我正在构建一个应用程序,它使用 ArticleBoundaryCallback 来启动对 API 的调用,并将响应存储在 Room 中。我还在使用 LiveData 收听该表,并在 PagedListAdapter 中显示项目。
问题是每次在 Room 的(Article)表中插入新数据时,整个列表都会刷新。
此外,在配置更改时,似乎再次获取了整个数据(ViewModel 不保留它,RecyclerView 被重新创建)。
在每次插入时,RecyclerView 都会跳转(如果插入了新数据,则跳转几行,或者如果它用旧数据替换新数据,则在开头)。
整个代码在这个GitHub repo中。
我的课程是:
文章:
文章 DAO:
LocalCache(从 Room 存储/检索)
应用程序库
视图模型
活动 - 从 VM 观察
适配器
差异
我真的需要解决这个问题。谢谢!
android - Why do we need LiveData and ViewModel
I have used LiveData and ViewModel
example
but i dont understand use of this feature because i can change value directly without use this feature even this is growing number of line in code by using observing code and same as in ViewModel
by creating MutableLiveData
.
below ViewModel
Code
public class FirstViewModel extends ViewModel {
Using in Activity