gpt4 book ai didi

android - 如何防止在使用 ViewModel 更改配置后第二次重新加载数据?

转载 作者:行者123 更新时间:2023-11-29 23:19:14 25 4
gpt4 key购买 nike

每次旋转后重新加载数据我在 onCreate 中获取数据并在 onCreateView() 中观察。我想知道旋转手机后(或配置更改后数据再次重新加载,结果我在旋转前有这些日志

fetchConfig ->observe 

旋转后我有

observe ->fetchConfig ->observe

如何防止第二次重新加载数据?我在 fetchConfig() 中添加了

if(customerConfigData.value==null) {} 

但我不确定这是不是最好的解决方案

private val viewModel: HomeViewModel by lazyViewModel()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel.fetchConfig()
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
viewModel.customerConfigData.observe(viewLifecycleOwner, Observer {
Log.i("test","observe")
})
return inflater.inflate(R.layout.fragment_home,container,false)
}


fun fetchConfig() {
Log.i("test","fetchConfig")

uiScope.launch {
val configEndpoint = EnigmaRiverContext.getExposureBaseUrl().append("v1/customer").append(AppConstants.CUSTOMER_UNIT)
.append("businessunit").append(AppConstants.BUSINESS_UNIT).append("defaultConfig").append("?preview=true")

val parsedData = homeRepository.fetchConfig(configEndpoint, GetConfigCall())
customerConfigMutableData.postValue(parsedData)
}

}

最佳答案

我认为一个解决方案是将对 fetchConfig() 的调用移动到 ViewModelinit block 中

关于android - 如何防止在使用 ViewModel 更改配置后第二次重新加载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54713210/

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