Android Fragments onStart似乎在onCreateView之前启动了他的代码

时间:2015-02-20 11:06:11

标签: android android-fragments factory-pattern onstart

我有一个片段,应该创建一些文件,遍历联系簿和其他一些很长的任务。 片段非常简单"嘿,请稍候"带有标签和进度条的片段。我使用工厂模式将参数传递给这个片段。

我的片段代码与this question的解决方案相当,只与其他参数和成员相匹配。在onStart - 方法中,我想完成我的长任务,但奇怪的是,在我看到我的视图之前启动代码,如果我记得片段,那么首先应该由onCreateView - 方法创建。生命周期正确。

这是工厂模式的副作用还是我在这里缺少什么?这里最好的解决方案是什么,以便在开始执行长代码之前实际显示视图?

2 个答案:

答案 0 :(得分:1)

当活动对用户可见时,将调用

OnStart 。 onCreateView将创建您的视图,但它尚不可见。你应该在onResume上开始长时间的操作。

答案 1 :(得分:0)

请参阅http://developer.android.com/reference/android/app/Activity.html#onResume()

基本上,正如Nauman所提到的,通常表明您的活动已经准备好与用户进行交互是onResume。但理想情况下,请使用

onWindowFocusChanged(boolean hasFocus)

但请记住,这不是正常生命周期事件流程的一部分。当对话框出现在Activity等前面时,也可以调用此方法

请参阅http://developer.android.com/reference/android/app/Activity.html#onWindowFocusChanged(boolean)