gpt4 book ai didi

android - 什么情况下 "Can' t 从 onDestroy 访问 ViewModels”以及如何优雅地解决它?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:33 26 4
gpt4 key购买 nike

一些错误如

   java.lang.RuntimeException: Unable to destroy activity {xxxxxx}:
java.lang.IllegalStateException: Can't access ViewModels from
onDestroy

最佳答案

查看 Android 源代码,它检查在尝试获取 ViewModel 时支持的 FragmentManager 是否被破坏。

打电话

ViewModelProviders.of(this).get(ViewModel::class.java)

会到达

private static HolderFragment findHolderFragment(FragmentManager manager) {
if (manager.isDestroyed()) {
throw new IllegalStateException("Can't access ViewModels from onDestroy");
}

如果 FragmentManager 被销毁,这将抛出异常。在应用生命周期中执行获取 ViewModel 代码时要小心。

要解决这个问题,您可以:

  • 在使用之前检查 getSupportFragmentManager().isDestroyed() View 模型
  • 周围用try catch and ignore if 不影响你的正常流

关于android - 什么情况下 "Can' t 从 onDestroy 访问 ViewModels”以及如何优雅地解决它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47896150/

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