Android Studio 不允许我使用 repeatOnLifecycle

标签 android android-studio kotlin kotlin-coroutines android-lifecycle

我想从 viewModel 观察我的 fragment 内的数据,但 Android Studio 不断触发此警告。有人可以帮助解决这个问题吗?这个问题是否与 Android Studio Bumbleblee 的更新有关?
enter image description here

最佳答案

当你写

viewLifecycleOwner.lifecycleScope.launch {
  repeatOnLifecycle(Lifecycle.State.STARTED) {
    // {code to collect from viewModel}
  }
}
repeatOnLifecycleLifecycleOwner 的扩展名- 在这里,您隐式使用 this - 即 fragment 的生命周期和最重要的 不是 fragment View 生命周期。
the documentation 中所示,您应该明确使用 viewLifecycleOwner.repeatOnLifecycle ,这正是 Lint 检查告诉您使用的内容:
viewLifecycleOwner.lifecycleScope.launch {
  viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
    // {code to collect from viewModel}
  }
}

关于Android Studio 不允许我使用 repeatOnLifecycle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71164314/

相关文章:

android - 在滑动 Pane 布局中单击时将 fragment 带到 'front'

android - Google Maps v2 - onclick 监听器在方向更改后不响应

android - Gradle 同步失败 - 将 Android Studio 更新到 3.2 后

Android Studio 和 Gradle - 关于 testCompile、testImplementation、testApi 的看似误导性警告

java - MBTilesWriter java.lang.UnsatisfiedLinkError slice-sqlite-jdbc-3.8.7

android - 使用 BindingAdapter 时数据绑定(bind)器无法识别 lambda 中的类型化参数

android - 改造需要一个字符串,但在第 1 行第 2 列路径 $ 处是 BEGIN_OBJECT

Android Studio 库项目错误

android - 在没有数据绑定(bind)或 findViewById() 的情况下访问布局 TextView?

file - Kotlin 。同时读取2个文件