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