Android开发之ANR

                                                                                      Android开发之ANR

 
如果你的程序报了这个错误:,也跟ANR有关!!!

ANR定义

  Android开发之ANR_第1张图片

               Android开发之ANR_第2张图片      Android开发之ANR_第3张图片


产生原因

    主线程需要做很多重要的事情,比如-->响应点击事件,更新ui,

如果在主线程里面阻塞过久时间,应用程序就会无响应。


解决方案

     把所有耗时的操作都应该放在子线程里执行,让主线程尽可能少做事情,例如网络或者数据库库操作,或者高耗时的计算操作,把这些操作都放在子线程里来完成。主线程为子线程提供一个Handler,以便完成时能够提交给主线程。


      子线程和主线程之间的关系简图如下:

    Android开发之ANR_第4张图片



    注意: 值得一提的是所有的UI处理都必须在主线程中进行

 

    方法: 在子线程里加入下图中的代码即可

   Android开发之ANR_第5张图片

  

    希望可以帮助你!!谢谢




你可能感兴趣的:(Android)