2016-12-15 33 views
0

有时,当我的应用通过推送收到新订单时,挂起。现在奇怪的是系统UI工作正常,应用程序没有响应,但对话框永远不会到来。Android应用挂起时没有ANR

我不知道如何调试它挂起的原因。每次收到新订单时都不会挂起,但很少。

任何关于为什么ANR可能不会来的指针?如何调试?

+0

尝试在接收推送后执行数据操作线程 – Ashiq

+0

如果你的UI线程在5秒内没有得到任何响应,那么显示为ANR,因此默认情况下通常在单个线程上运行“UI线程”或“主线程“ – Vadivel

+0

我一直无法重现问题,因为它很少发生。将会在某些事件发生时更新。 –

回答

1

您应该观察monitor中的应用行为。如果CPU /内存使用率过高,则可能表示存在内存泄漏或CPU密集型任务(如未清除的TimerTask或同一Runnable的多个实例),导致应用程序在没有ANR的情况下无响应。

如果确实是内存泄漏,您可以进一步调查LeakCanarymonkey以进一步缩小泄漏的确切原因。

我曾经跨越导致既是一个巨大的内存泄露一个CPU过载,导致我的应用程序挂起没有抛出异常的动画进度对话框来了。

+0

刚刚发生,应用程序再次挂起。检查了内存的使用情况,果然有一个〜70mb的秒杀。将添加LeakCanary并进入这个mem泄漏的底部,这要感谢很多人指引我朝着正确的方向 –

+0

不客气...... :) –

+0

我已经upvoted –