ANR的分類
1.KeyDispatchTimeout(5 seconds)-主要情況:按鍵或觸摸事件在指定時間內(nèi)無響應。
2:BroadcastTimeout(10 seconds) :BroadcastReceiver在特定時間內(nèi)無法處理完成
3:ServiceTimeout(20 seconds) –小概率類型 : Service在特定的時間內(nèi)無法處理完成
ANR的解決方法
1.在主線程中盡量少進行程序執(zhí)行,可以采用開啟子線程的方式,然后通過Handler+Messager的方式來做一些操作。
2.應用程序應該避免在BroadcastReceiver里做耗時的操作或計算。但不要在子線程里去做這些事情(因為 BroadcastReceiver的生命周期短)。而應該讓應用程序應該啟動一個 Service