1. 程式人生 > >android什麼是ANR,如何定位和避免

android什麼是ANR,如何定位和避免

  • 什麼ANR
  • 造成ANR的原因
  • 哪些操作是在主執行緒
  • 怎麼解決

1.什麼ANR

主執行緒執行了耗時操作,造成無響應的彈框的出現

2.造成ANR的原因

執行緒被IO操作阻塞(4.0以後網路IO不能再主執行緒執行)
主執行緒存在耗時操作

3.哪些操作是在主執行緒

  • activity所有生命週期都執行在主執行緒
  • Service預設是執行在主執行緒
  • 廣播的Onreceve回撥也是預設在主執行緒
  • 沒有使用子執行緒的Looper的handlerMessage,post(Runnble)
  • Async的回撥中除了doinbackground,其他都是執行在主執行緒

4.怎麼解決

開啟執行緒+handler,或者使用Asyctask