gpt4 book ai didi

android - 如何执行不受配置更改影响的初始查询

转载 作者:行者123 更新时间:2023-12-02 17:22:52 25 4
gpt4 key购买 nike

我需要在 dagger2 使用 ViewModelProvider.Factory 注入(inject)的 ViewModel 中执行初始查询,我可以在 fragment 中执行此操作,但在这种情况下,当旋转屏幕时,将重新创建 Activity 并执行初始查询将再次执行,我不希望出现这种行为,我想看到旋转之前查看的相同数据。

可能的解决方案
我可以在 ViewModel 中定义一个 bool 变量并编写以下逻辑:

_ViewModel

var isScreenRotated = true

_ fragment

   override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

if (searchViewModel.isScreenRotated) {
searchViewModel.isScreenRotated = false
searchViewModel.executeSearch("fruits", 1)
}

}

提前致谢。

最佳答案

when rotating the screen the activity will be re-created and the initial query will be executed again and I don't want this behavior, I want to see the same data I was viewing before rotating.

这就是 Room 为您提供 LiveData<List<T>> 的原因您可以将其存储在 ViewModel 中,以便在重新订阅时不会重新获取数据。

如果数据已经开始加载或已经加载,则不会触发重新加载,您无需关心屏幕是否旋转。

如果您需要自定义行为,请扩展 MutableLiveData并自行跟踪加载状态(如果尚未开始加载,请在 onActive 中开始加载)。

关于android - 如何执行不受配置更改影响的初始查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58142229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com