Android多线程入门

最近感觉基础知识不太扎实,拿起郭神的《第一行代码》开始看,并记录来下阅读的内容,以方便以后的系统性的回忆。
<li>Handler处理机制</li>


  在Android系统中,主线程不能进行耗时的操作,当主线程阻塞时,系统将会抛出ANR异常。Handler处理机制主要包含MessageQueue/Message/Looper以及Handler。
  如使用场景:子线程更新主线程控件信息
  运行机制:子线程将线程的处理结果,通过Handler 将消息加入到MessageQueue队列中等待处理。Looper 调用loop()方法将队列中的消息依次提取并传递到handlerMessage方法中处理,最后在handleMessage方法中更新UI. 由于每个线程只有一个Looper对象和一个MessageQueue对象,同时异步线程处理又是经常需要更新主线程,个人感觉主线程中消息太多/线程数量太多,也许会影响性能。

<li>AsyncTask异步消息处理机制</li>

   AsyncTask也是异步消息处理机制的另一种方法。由于之前编程经常使用AsyncTask,因此对该部分内容还是比较生疏。
   AsyncTask是一个抽象类,因此如果要使用它,需要声明一个类去继承并实现它的关键方法。
   在声明类时,可以为其制定三个泛型参数<A,B,C> 
          A: 在执行AsyncTask时,需要传入的参数
          B:后台执行时,进程的执行进度值类型
          C:任务执行完毕时的返回值类型。
   需要完成以下几个方法的重写:
          1:OnPreExecute  线程开始执行时,需要调用的方法
          2:doInBackground 线程处理的关键方法,耗时的处理内容放到该方法中进行操作
          3:OnProgressUpdate 线程处理更新处理进度值 值类型为【B】类型
          4:OnPostExecute 当线程任务执行结束后,通过该方法操作主线程UI并完成结果响应
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,131评论 25 709
  • Android Handler机制系列文章整体内容如下: Android Handler机制1之ThreadAnd...
    隔壁老李头阅读 8,599评论 1 15
  • 本来在如此紧张的期末复习周,我应该在图书馆奋战一天。奈何今天生理期来了,早早地去了图书馆却还是因疼痛而返...
    伊清伊阅读 2,361评论 4 1
  • 不知道为什么,今天晚上总是莫名的恐慌,总有一种要发生的什么的感觉 外面是闪电了,我想在我的梦中会和现实一样会不会有...
    离人莫叹阅读 1,229评论 0 0
  • 人生就像巧克力糖,你永远不知道下一颗是什么。就好像你永远不知道你下一个要去的城市和要遇见的人。 真正去南京的第一次...
    茉莉_87c0阅读 1,706评论 0 0

友情链接更多精彩内容