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

标签 android performance

我最近在打开 FragmentActivity 的过程中运行了一个方法跟踪 session ,该 session 从上一个 Activity 打开大约需要 750-1000 毫秒,并且有一个 ListView,它将其初始一批数据加载到其中,时间从低(“低”)为 1500 毫秒到高达 5000 毫秒。按“独占时间”排序后,发现有一个名为android.os.MessageQueue.next的方法占用了多个时间。

方法跟踪 session 后所有主线程的 View 。注意 android.os.MessageQueue.next 在列表中是第一位的:

A view of all the threads after a method tracing session

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

我应该担心吗?

最佳答案

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

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

Source code

关于android.os.MessageQueue.next 占用了多个独占时间——这是正常的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304100/

相关文章:

Android微调器设置默认文本

regex - 从这么多文件的开头删除数字的最快方法是什么?

Python 搜索文件中的一百万个字符串并统计每个字符串的出现次数

javascript - 如何在 JavaScript 中实现一组字母(小写和大写)的排列生成器(或内存函数)?

performance - qemu 与 qemu-kvm : some performance measurements

android - 无法在 Android(在 MarshMallow 及更高版本)设备中创建目录

java - 如何缩短有关 Stringrequest 的代码?

java - 如何为 ActivityResultLauncher 构建 PickVisualMediaRequest

android - 为什么alertdialog不为我显示

android - 我什么时候应该删除临时图像文件?