本人博客原文
第一部分 Android线程
Android线程模型
Android的每个进程有一个称为“
main
”主线程(也称UI线程)的线程。它除了负责所有事件的分发和处理,还负责4大组件的生命周期函数的调用。
如何确定当前线程
我们可以通过打印代码的调用层次来确定当前线程。
Handler技术
Handler用于异步消息的处理。默认情况下Handler与其创建者处于同一线程, 如果Handler里面做耗时的动作,其对应线程自然会阻塞。
AsyncTask技术
引入AsyncTask的目的是任务在主线程之外运行,而回调方法是在主线程中执行,以避免了使用Handler带来代码看上去非常臃肿的麻烦.
ThreadLocal简介
ThreadLocal的目的就是为每一个使用ThreadLocal的线程都提供一个值,让该值和使用它的线程绑定,当然每一个线程都可以独立地改变它绑定的值。
第二部分 什么是ANR
在Android中,系统会监视那些反应不够迅速的应用。如果系统发现某个应用程序反应太慢,它会显示一个叫做Application Not Responding (ANR)的对话框给用户。用户可以选择等待该应用程序让它继续,也可以选择强行结束该应用程序。虽然用户可以选择等待该应用程序让它继续,但是用户其实是非常不喜欢出现该对话框(ANR提示框)
第三部分 对付ANR的N种武器
结束
<wbr></wbr>