应用程序UI冻结GC消息

时间:2014-12-24 06:40:09

标签: android garbage-collection

您好我的Android应用程序出了问题。在数据库中输入数据时,数据库查询读取数据不起作用,并使用以下Logcat消息冻结UI。

  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

我无法理解为什么会这样。任何帮助,将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:4)

当然,您正在主线程(UI线程)上工作。 你必须在后台线程上完成这项工作,同时显示一个加载或永无止境的动画,以向用户显示你正在处理的事情。

否则GC的这类消息是正常的并且不是问题,任何普通的应用程序都可能抛出此消息。

在应用程序启动后10秒内出现ANR问题?如果是这样,问题就是100%,你正在研究ui线程。

希望这有帮助。