界面卡頓一般都是ANR捕捂,一般用adb logcat不會抓取到相關的log蚀之。
ANR表示“應用程序無響應”邑滨,這個是需要我們避免發(fā)生的事情,出現(xiàn)這個異常的原因:
1.主線程 (“事件處理線程” / “UI線程”) 在5秒內沒有響應輸入事件捅僵;
2.BroadcastReceiver在10秒內沒有執(zhí)行完畢家卖。
app
導致ANR的原因
UI線程做了耗時的操作,例如”網(wǎng)絡請求”命咐、大量數(shù)據(jù)庫操作篡九,比如app上批量下載。
如何避免
1.UI線程只做界面刷新醋奠,不做任何耗時操作,耗時操作放在子線程來做伊佃;
2.可以使用Thread+handle或者AsyncTask來進行邏輯處理窜司。
第一條是非常重要的。