简体   繁体   English

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

[英]Is it a good idea to start a loader in Fragment.onCreate() instead of onActivityCreated()?

Is it a good idea to start a loader in Fragment.onCreate() instead of onActivityCreated()? 在Fragment.onCreate()中代替onActivityCreated()中启动加载器是个好主意吗? I am thinking about performance. 我在考虑性能。 I'd like data loading and fragment UI rendering to happen in parallel. 我希望数据加载和片段UI呈现并行进行。 By starting a loader in Fragment.onCreate(), data loading can start earlier than in Fragment.onActivityCreated(). 通过在Fragment.onCreate()中启动加载程序,可以比在Fragment.onActivityCreated()中更早地开始数据加载。 Is there any drawback of this approach? 这种方法有什么缺点吗? Thanks. 谢谢。

You can initialize a loader in onCreate if the fragment isn't retained across Activity re-creation (setRetainInstance(true) is NOT called). 如果片段在整个Activity重新创建过程中没有保留,则可以在onCreate中初始化加载程序(不调用setRetainInstance(true))。 If it's retained across Activity re-creation (setRetainInstance(true) is called) you'd want to init the loader in onActivityCreated because onCreate won't be called after a configuration change (eg screen rotation). 如果在整个Activity重新创建中保留了它(调用了setRetainInstance(true)),则您想在onActivityCreated中初始化加载器,因为在配置更改(例如屏幕旋转)后将不会调用onCreate。

You HAVE to init the loader after a configuration change because even with setRetainInstance(true) the callback methods passed in initLoader or restartLoader won't be retained and need to be set again or you won't receive callbacks like onLoadFinished() which would very likely break your app. 您必须在配置更改后初始化加载器,因为即使使用setRetainInstance(true),传递给initLoader或restartLoader的回调方法也不会保留,需要重新设置,否则您将不会收到像onLoadFinished()这样的回调。可能会破坏您的应用。

There's no drawback of initializing a loader in onCreate if the fragment isn't retained across configuration changes, just make sure that you don't update the ui too early (onLoadFinished could be called even if the layout hasn't been inflated yet). 如果片段没有在配置更改中保留下来,则在onCreate中初始化加载程序没有任何缺点,只需确保不要过早更新ui(即使尚未膨胀布局也可以调用onLoadFinished)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在Fragment.onCreate()方法中获取ViewGroup - obtain ViewGroup inside Fragment.onCreate() method Fragment.onCreate()和Activity.onCreate()之间的关系 - Relationship between Fragment.onCreate() and Activity.onCreate() 在Fragment onCreateView,onCreate或onActivityCreated中发出HTTP请求? - Make HTTP requests in Fragment onCreateView, onCreate or onActivityCreated? NullPointerException-onActivityCreated中Universal Image Loader的片段中的进度栏 - NullPointerException for progressbar in fragment for Universal Image Loader in onActivityCreated 为什么调用片段onCreateView,onCreate,onActivityCreated - Why does the fragment's onCreateView, onCreate, onActivityCreated are called 片段的onCreate和onActivityCreated上的已保存实例状态是否不同? - does Saved instance state on onCreate and onActivityCreated of a fragment differs? 当 Fragment onActivityCreated 被调用时 - When Fragment onActivityCreated called onCreate on fragment 总是从错误的位置开始 - onCreate on fragment always start on a bad position 在Android的onCreate方法上初始化Crashlytics是一个好主意吗? - Is it a good idea to initialize Crashlytics, on android's onCreate method? 片段Recyclerview onCreateView,onViewCreated或onActivityCreated? - Fragment Recyclerview onCreateView, onViewCreated or onActivityCreated?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM