android.os.MessageQueue.next占用了多个独占时间 - 这是正常行为吗?

Den*_*s L 26 performance android

我最近在打开FragmentActivity的过程中运行了一个方法跟踪会话,该过程需要大约750-1000ms才能从上一个活动中打开,并且有一个ListView,它在其中加载其初始批量数据的时间从低到低("低")为1500ms,高达5000ms.按"独占时间"排序后,我注意到一个名为的方法android.os.MessageQueue.next占用了多个时间.

方法跟踪会话后所有主线程的视图.通知android.os.MessageQueue.next是列表中的第一个:

方法跟踪会话后所有线程的视图

现在,我的问题是这样的:这是Android应用程序中的标准操作程序 - 也就是说,是否android.os.MessageQueue.next指向等待另一个操作的主队列?或者,这可能表明某种临时僵局?

我应该担心吗?

siv*_*iva 1

如果您使用处理程序线程,希望出现问题。我可以在 MessageQueue 的 next 方法的源代码中看到这些行。看看它可能会帮助你理解。

** Message next() { // 如果消息循环已经退出并被释放,则返回此处。// 如果应用程序在退出后尝试重新启动循环程序,则可能会发生这种情况, // 这是不支持的。**

源代码