当前标签 / 分析 / 总共2篇

Handler和HandlerThread

Hander

Hander的主要作用有两个:

  1. 延迟处理消息。
  2. 在其他线程处理消息。

这里的消息可以理解为MessageRunnable,通过如下方法来调度消息。

方法作用
post(Runnable)将Runnable对象添加到消息队列
postAtTime(java.lang.Runnable, long)加入消息队列,在特定时间执行Runnable对象
postDelayed(Runnable, Object, long)加入消息队列,延迟执行
sendEmptyMessage(int)仅仅发送what值消息
sendMessage(Message)将Message对象加入队列
sendMessageAtTime(Message, long)同理
sendMessageDelayed(Message, long)同理

Runnable实际上是将该Runnable匿名对象排入队列,在其他线程执行该消息,这里的其他线程可以理解为MessageQueue所在的线程。

阅读更多

Gradle构建分析与Task详解

前言

我们现在已经对如何使用Gradle来构建Android工程有了认识,并且大致了解了Groovy的语法和Maven仓库的相关知识,本篇文章计划从原理和API接口角度来分析一下我们配置的脚本文件,以及是如何工作的,只有学会了如何查看API文档才能灵活的去配置构建。

我们已经知道Gradle中待编译的工程叫project,每个project由多个task来组成,而这些task就是具体完成任务的基本单位。你是否还记得第一次使用Android Studio来创建新工程,发现里面默认有很多任务,它们是怎么来的呢?它们又能做什么呢?

阅读更多