在配置更改期间销毁Activity实例时,与其关联的Loaders是否也被销毁?

时间:2015-09-12 09:56:36

标签: android android-loadermanager android-loader

关于装载机的开发者指南,

  

他们自动重新连接到 上一个加载器的光标   在配置更改后重新创建。因此,他们不需要   重新查询他们的数据。

我假设通过" last loader",它们意味着在配置更改期间销毁Activity时销毁的加载器。然后通过说"最后一个加载器的光标",它们表示与最后一个加载器相关联的光标。这告诉我们当一个Activity因配置更改而被销毁时,它的加载器也会被销毁,但是游标(或加载器加载的任何其他形式的数据)都不会被销毁。这是正确的吗?

实际上内化这个有点困难。我的直觉说当加载器被破坏时,与它相关的所有东西,包括与它相关的光标也应该被破坏。

1 个答案:

答案 0 :(得分:1)

在配置更改期间,Loader实例保持活动状态。 LoaderCallbacks已断开连接,新的活动已重新连接。

围绕retain()的{​​{1}}和finishRetain()方法查看LoaderManager.java。您可以看到LoaderInfo字段已清空,但mCallbacks字段不是。

这些字段的初始化发生在mLoader中,如果LoaderInfo.start()为空,您可以看到mCallbacks.onCreateLoader() 调用