有時,當我的應用通過推送收到新訂單時,掛起。現在奇怪的是系統UI工作正常,應用程序沒有響應,但對話框永遠不會到來。Android應用掛起時沒有ANR
我不知道如何調試它掛起的原因。每次收到新訂單時都不會掛起,但很少。
任何關於爲什麼ANR可能不會來的指針?如何調試?
有時,當我的應用通過推送收到新訂單時,掛起。現在奇怪的是系統UI工作正常,應用程序沒有響應,但對話框永遠不會到來。Android應用掛起時沒有ANR
我不知道如何調試它掛起的原因。每次收到新訂單時都不會掛起,但很少。
任何關於爲什麼ANR可能不會來的指針?如何調試?
您應該觀察monitor中的應用行爲。如果CPU /內存使用率過高,則可能表示存在內存泄漏或CPU密集型任務(如未清除的TimerTask
或同一Runnable
的多個實例),導致應用程序在沒有ANR的情況下無響應。
如果確實是內存泄漏,您可以進一步調查LeakCanary或monkey以進一步縮小泄漏的確切原因。
我曾經跨越導致既是一個巨大的內存泄露和一個CPU過載,導致我的應用程序掛起沒有拋出異常的動畫進度對話框來了。
剛剛發生,應用程序再次掛起。檢查了內存的使用情況,果然有一個〜70mb的秒殺。將添加LeakCanary並進入這個mem泄漏的底部,這要感謝很多人指引我朝着正確的方向 –
不客氣...... :) –
我已經upvoted –
嘗試在接收推送後執行數據操作線程 – Ashiq
如果你的UI線程在5秒內沒有得到任何響應,那麼顯示爲ANR,因此默認情況下通常在單個線程上運行「UI線程」或「主線程「 – Vadivel
我一直無法重現問題,因爲它很少發生。將會在某些事件發生時更新。 –