【问题标题】:How loaders survive configuration changes?加载程序如何在配置更改后幸存下来?
【发布时间】:2018-05-06 06:01:36
【问题描述】:

https://medium.com/google-developers/making-loading-data-on-android-lifecycle-aware-897e12760832
上面提到的文章指出

加载程序在配置更改后仍然存在。

所以我刚刚检索到的数据将在设备旋转后可用。

这也说明了

装载机不会永远存在

在请求 Activity 或 Fragment 被销毁时会自动清理它们。因此,如果 Activity 在设备旋转时被销毁,这意味着加载器正在清理,我如何从加载器中检索数据?

【问题讨论】:

  • 你不能使用ViewModels吗?

标签: android loader


【解决方案1】:

最新版本的 LoaderManagerImpl 在内部使用 ViewModel。 ViewModel 类旨在以有生命周期意识的方式保存和管理与 UI 相关的数据。这允许数据在配置更改(例如屏幕旋转)中保留下来。

因此,您可以在重新创建 Activity 时从 Loader 检索数据。如果您的 Activity 在您单击 Back 按钮时被永久销毁,则 Loader 也会随之销毁。

【讨论】:

  • 你不认为活动在屏幕旋转期间被破坏了吗?
  • @AravindPulagam 但ViewModel 不是
  • @AravindPulagam Activity被销毁,然后屏幕旋转时系统立即调用onCreate()重新创建。这并不意味着该活动被永久破坏。只要 Activity 没有被永久破坏,ViewModel 就可以继续存在。
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
相关资源
最近更新 更多