加载片段在Android中花费更多时间

时间:2016-01-26 12:02:22

标签: android android-fragments android-asynctask

我正在尝试替换Android中的片段,并且花费将近2-3秒将片段加载到UI中。我不确定是什么原因造成了这个问题,因为我没有在onCreateView执行繁重的线程。

我的片段需要花费太多时间才能加载onCreateView

链接:Code for my onCreateView

我在onCreateView中所做的一切都是根据来自数据库的数据来查看某些布局的可见性。我不认为加载页面会花费这么多时间,这对我来说没有意义。

到目前为止我尝试了什么:

我没有尝试过任何可靠的东西,除了以下是愚蠢的一些愚蠢的实现或我认为如此..

  1. 尝试在Async Task中放置一大块代码,但由于大部分代码都需要setVisibility(),因此它在doInBackground()中不起作用。添加runOnUIThread()与使用异步任务相同。

  2. 我怀疑片段管理器可能需要花一些时间将片段加载到UI中,但是当我用另一个具有较少UI组件的片段替换时,它似乎加载得很快。我也尝试使用getFragmentManager().executePendingTransactions();

  3. 这就是我到目前为止所尝试的内容,但也发现选项2完全没必要,因为我在return convertView;之前打印的日志需要1-2秒才能打印。我不确定出了什么问题或出了什么问题。任何帮助都感激不尽。

1 个答案:

答案 0 :(得分:9)

您不必在super.onCreate()中致电onCreateView。其次,您正在通过too much DB operations in oncreateView等指示执行dbHelper.getRelationGenderForEdit。您必须在backGroundThread中执行这些操作。您可以使用LoadersAsyncTasks来实现此目的,并将这些结果传递给Fragment并在onCreateView

中使用这些值

希望这有帮助。