gpt4 book ai didi

android - kotlin - android - 单例 View 模型中的 viewModelScope

转载 作者:行者123 更新时间:2023-12-03 10:31:32 27 4
gpt4 key购买 nike

我的应用程序使用 MVVM 模式并希望将 viewmodelscope 用于协程,现在我面临一些与 viewmodelscope 相关的问题

在应用程序中,有两个 fragment ,每个 fragment 都有一个 View 模型。从 fragment 一导航到 fragment 二,在第二个 fragment ,用户将点击 API。如果响应为假,用户将再次返回到第一个 fragment 并需要修复他们的输入。然后用户可以再次导航到第二个 fragment 并再次点击 API。

问题是在第二次尝试时,应用程序无法访问 API,因为在第一次尝试时协程已经在 View 模型的销毁状态下被取消(它会自动取消,因为它是 View 模型范围本身 CMIIW 的行为)。并且由于我将所有 viewmodel 设为单例,因此我猜在第二次尝试时,再次调用取消的 viewmodelscope 并且无法运行协程(因为它已经在第一次尝试中被取消)。

我的问题是,如果我继续为 viewmodel 使用单例,有没有其他方法可以在第二次尝试中重置 viewmodelscope 以便它可以再次运行以命中 API?

最佳答案

  • 我建议你为你的 Activity 使用单个 ViewModel,然后这个 Activity 中的所有 fragment 都会共享它,这就是 Google 发明 ViewModel 的原因。
  • 这个 viewModel 会遵循 Activity 的 LifeCycle,你不需要让它成为单例,直接在 Activity.onCreate() 中获取即可。
  • 关于android - kotlin - android - 单例 View 模型中的 viewModelScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60768691/

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