2016-12-15 71 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 –