我正在尝试替换 Android 中的一个 fragment ,它需要将近 2-3 秒才能将 fragment 加载到 UI 中。我不确定是什么导致了这个问题,因为我没有在 onCreateView
中执行繁重的线程。
加载时间过长的 fragment 在其 onCreateView
中有以下内容。
我在 onCreateView 中所做的只是根据来自数据库的数据来调整某些布局的可见性。我不认为加载页面会花费我太多时间,这对我来说没有意义。
到目前为止我尝试了什么:
我没有尝试过任何可靠的东西,除了以下是一些愚蠢的愚蠢实现,或者我认为是......
尝试将大部分代码放入异步任务中,但由于大部分代码需要
setVisibility()
,因此它在doInBackground()中不起作用
。添加runOnUIThread()
同样与不使用异步任务相同。我怀疑 fragment 管理器可能需要一些时间才能将 fragment 加载到 UI 中,但是当我用另一个具有较少 UI 组件的 fragment 替换时,它似乎加载得很快。我还尝试使用
getFragmentManager( ).executePendingTransactions();
.
这就是我到目前为止所尝试的,但也发现选项 2 是完全不必要的,因为我在 return convertView;
之前打印的日志需要 1-2 秒才能打印。我不确定出了什么问题或哪里出了问题。任何帮助都感激不尽。
最佳答案
您不必在 onCreateView
中调用 super.onCreate()
。其次,您通过 dbHelper.getRelationGenderForEdit
等指令在 oncreateView 中执行了过多的 DB 操作
。您必须在 backGroundThread
中执行这些操作。您可以使用 Loaders
或 AsyncTasks
来实现这一点并将这些结果传递给 Fragment
并在 onCreateView
中使用这些值/p>
希望这对您有所帮助。
关于android - 在 Android 中加载 fragment 需要更多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35013423/