android - 应用程序 UI 因 GC 消息而卡住

标签 android garbage-collection

您好,我的 Android 应用程序有问题。将数据输入数据库时​​,读取数据的数据库查询不起作用,它会卡住 UI 并显示以下 Logcat 消息。

  12-24 12:01:56.261: I/art(16943): Explicit concurrent mark sweep GC freed 33437(1578KB)    AllocSpace objects, 0(0B) LOS objects, 39% free, 24MB/40MB, paused 724us total 84.428ms
 12-24 12:01:57.050: I/art(16943): Explicit concurrent mark sweep GC freed 13651(640KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 24MB/40MB, paused 929us total 94.389ms
 12-24 12:01:57.708: I/art(16943): Explicit concurrent mark sweep GC freed 13625(637KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 24MB/40MB, paused 3.232ms total 77.678ms
 12-24 12:01:58.472: I/art(16943): Explicit concurrent mark sweep GC freed 13652(638KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 24MB/40MB, paused 960us total 83.427ms
 12-24 12:01:59.221: I/art(16943): Explicit concurrent mark sweep GC freed 13884(648KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 24MB/40MB, paused 817us total 77.259ms
 12-24 12:01:59.949: I/art(16943): Explicit concurrent mark sweep GC freed 13929(652KB) AllocSpace objects, 0(0B) LOS objects, 38% free, 25MB/41MB, paused 1.483ms total 67.075ms
 12-24 12:02:00.657: I/art(16943): Explicit concurrent mark sweep GC freed 13901(649KB) AllocSpace objects, 0(0B) LOS objects, 38% free, 25MB/41MB, paused 1.158ms total 87.732ms

我不明白为什么会这样。任何帮助,将不胜感激。 谢谢!!

最佳答案

您肯定是在主线程(UI 线程)上工作。 你必须在后台线程上完成这项工作,同时显示加载或永无止境的动画以向用户展示你正在做某事。

否则GC的这种消息是正常的,不是问题,任何正常的应用程序都可以抛出这种消息。

您在应用启动 10 秒后遇到 ANR 问题?如果是这样,则 100% 是问题所在,您正在处理 ui 线程。

希望这对您有所帮助。

关于android - 应用程序 UI 因 GC 消息而卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27632656/

相关文章:

java - Activity 内部出现奇怪的 NullPointerException

java - 在Java中重用对象的存储意味着什么?

java - 测量 GC 暂停时间的最佳方法是什么?

java - OperationException[状态{statusCode=PLACES_API_RATE_LIMIT_EXCEEDED,分辨率=null}]

android - Qt Ministro错误

java - xml 中的字符串标记在 16 以上的 api 中产生了一些问题

python - 在 Python 中,每个对象可以调用 `__del__` 多少次?

node.js - 任何在 Node Google Cloud Function 上提示/强制垃圾收集的方法

android - 如何在 Fragment 中 onCreateView 时更改我的标签页

android - 如何从 Intent.ACTION_GET_CONTENT 返回的 URI 中提取文件名?