android - 在 Android 中加载 fragment 需要更多时间

标签 android android-fragments android-asynctask

我正在尝试替换 Android 中的一个 fragment ,它需要将近 2-3 秒才能将 fragment 加载到 UI 中。我不确定是什么导致了这个问题,因为我没有在 onCreateView 中执行繁重的线程。

加载时间过长的 fragment 在其 onCreateView 中有以下内容。

链接:Code for my onCreateView

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

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

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

  1. 尝试将大部分代码放入异步任务中,但由于大部分代码需要 setVisibility(),因此它在 doInBackground()。添加 runOnUIThread() 同样与不使用异步任务相同。

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

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

最佳答案

您不必在 onCreateView 中调用 super.onCreate()。其次,您通过 dbHelper.getRelationGenderForEdit 等指令在 oncreateView 中执行了过多的 DB 操作。您必须在 backGroundThread 中执行这些操作。您可以使用 LoadersAsyncTasks 来实现这一点并将这些结果传递给 Fragment 并在 onCreateView 中使用这些值/p>

希望这对您有所帮助。

关于android - 在 Android 中加载 fragment 需要更多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35013423/

相关文章:

android - MODE_PRIVATE 无法解析为 openFileOutput 中的变量

android - PageAsyncTask endHandler 更新调用页面

java - 为什么我的 sqlite 选择没有返回结果?

android - 如何获取我上传文件的网站的网址?

android - 在 SherlockFragment 中切换布局 XML

java - 从另一个 fragment 单击按钮时更改图像

java - FragmentStatePagerAdapter 与 Glide 一起使用会导致 NullPointerException

java - 使用 AsyncTask 显示圆形进度条

java - Android 多点触控 : Not detecting MotionEvent. ACTION_POINTER_DOWN

android - 从网络下载图片时如何处理url中的空白区域?