我正在尝试替换Android中的片段,并且花费将近2-3秒将片段加载到UI中。我不确定是什么原因造成了这个问题,因为我没有在onCreateView
执行繁重的线程。
我的片段需要花费太多时间才能加载onCreateView
。
我在onCreateView中所做的一切都是根据来自数据库的数据来查看某些布局的可见性。我不认为加载页面会花费这么多时间,这对我来说没有意义。
到目前为止我尝试了什么:
我没有尝试过任何可靠的东西,除了以下是愚蠢的一些愚蠢的实现或我认为如此..
尝试在Async Task中放置一大块代码,但由于大部分代码都需要setVisibility()
,因此它在doInBackground()
中不起作用。添加runOnUIThread()
与使用异步任务相同。
我怀疑片段管理器可能需要花一些时间将片段加载到UI中,但是当我用另一个具有较少UI组件的片段替换时,它似乎加载得很快。我也尝试使用getFragmentManager().executePendingTransactions();
这就是我到目前为止所尝试的内容,但也发现选项2完全没必要,因为我在return convertView;
之前打印的日志需要1-2秒才能打印。我不确定出了什么问题或出了什么问题。任何帮助都感激不尽。
答案 0 :(得分:9)
您不必在super.onCreate()
中致电onCreateView
。其次,您正在通过too much DB operations in oncreateView
等指示执行dbHelper.getRelationGenderForEdit
。您必须在backGroundThread
中执行这些操作。您可以使用Loaders
或AsyncTasks
来实现此目的,并将这些结果传递给Fragment
并在onCreateView
希望这有帮助。