网站上有很多问题与我的问题类似。但它们都没有提供问题的确切解决方案。
我正在开发一个应用程序,它在一个活动中有大量的图像视图,我正在使用画布绘制线条。
在onDestroy方法中,我遍历xml的每个元素,如果是imageview,我将通过调用setBackgroundResource()
和setImageResource()
方法删除其背景。并使用路径在imageview的边缘周围绘制线条,使其感觉像方形进度条。
我的代码每秒最多调用20次这个类。在该代码中,我创建了最多5个新的Paths对象,并为每个调用绘制一条线。
在几个不同配置的设备中测试应用程序。它运行良好,没有任何崩溃。但崩溃分析报告的问题没有太多细节。
android.graphics.Path.finalize()
10秒后超时
android.view.ThreadedRenderer.finalize()
10秒后超时
android.os.PowerManager$WakeLock.finalize()
10秒后超时
这两个相同的崩溃在不同的对象上。
我试图在我的代码中找出问题,但它并没有帮助我,因为崩溃日志甚至互联网上都没有太多细节。
我所了解到的这个问题是垃圾收集器暂停引起的。如果申请是在后台,可能会出现此问题。
在我的应用程序中有几次调用System.gc()
,我删除了所有这些,但崩溃在我的环境中不可重现,我也无法测试。
可能导致此问题的原因是什么?导致此问题的System.gc()
调用或我为进度条创建的路径对象。