在Fragment.onCreate()而不是onActivityCreated()中启动加载器是个好主意吗?

时间:2015-08-05 01:04:38

标签: android performance

在Fragment.onCreate()而不是onActivityCreated()中启动加载器是个好主意吗?我在考虑表现。我希望数据加载和片段UI呈现并行发生。通过在Fragment.onCreate()中启动加载器,数据加载可以比Fragment.onActivityCreated()更早开始。这种方法有什么缺点吗? 感谢。

1 个答案:

答案 0 :(得分:0)

如果片段未在Activity重新创建中保留(未调用setRetainInstance(true)),则可以在onCreate中初始化加载器。如果它在Activity重新创建时保留(调用setRetainInstance(true)),你想在onActivityCreated中初始化加载器,因为onCreate在配置更改后不会被调用(例如屏幕旋转)

您必须在配置更改后初始化加载器,因为即使使用setRetainInstance(true),在initLoader或restartLoader中传递的回调方法也不会被保留,需要再次设置或者您不会收到回调比如onLoadFinished()很可能会破坏你的应用程序。

如果片段未在配置更改中保留,那么在onCreate中初始化加载器没有任何缺点,只需确保您不要过早更新ui(onLoadFinished甚至可以调用如果布局还没有膨胀)。