从源码与官方文档看之Handler篇(七)

简介: 接下来就是我们可以正常调用的Handler类方法了,希望早日完成Handler类的源码阅读。

前言

网络异常,图片无法展示
|


接下来就是我们可以正常调用的Handler类方法了,希望早日完成Handler类的源码阅读。

正篇

我们继续看源码:

/**
 * Returns a string representing the name of the specified message.
 * The default implementation will either return the class name of the
 * message callback if any, or the hexadecimal representation of the
 * message "what" field.
 *  
 * @param message The message whose name is being queried 
 */
@NonNull
public String getMessageName(@NonNull Message message) {
    if (message.callback != null) {
        return message.callback.getClass().getName();
    }
    return "0x" + Integer.toHexString(message.what);
}

这个方法从名称上可知是用来查询Message对象即消息的名称,注释大意是说此方法返回一个表达特定消息名称的字符串。默认实现将返回消息回调的类名(如果有的话)或者消息“what”字段的十六进制表示。而且用了@nonnull表示该方法不为空。而message参数则是用正被查询名称的消息对象。 接着我们看下一个方法:

/**
 * Returns a new {@link android.os.Message Message} from the global message pool. More efficient than
 * creating and allocating new instances. The retrieved message has its handler set to this instance (Message.target == this).
 *  If you don't want that facility, just call Message.obtain() instead.
 */
@NonNull
public final Message obtainMessage()
{
    return Message.obtain(this);
}

方法名可知是用来获取消息的,注释解释道:该方法可以返回一个新的Message对象且器是从全局消息池中获取的,比创建和分配新实例更有效。检索到的消息将其处理程序设置为此实例(Message.target == this)。如果您不想要该功能,只需调用 Message.obtain() 即可。

(未完待续)

总结

Handler类的方法阅读正式开始,后面将会更加深入的看这些方法的写法与如何使用,以及它们所出现的原因等,让我们更容易去理解这个Handler类。

相关文章
|
消息中间件 Android开发
Handler源码解读——handler使用时的注意事项
工作中经常会遇到从子线程发送消息给主线程,让主线程更新UI的操作,常见的有handler.sendMessage(Message),和handler.post(runnable)和handler.postDelayed(runnable, milliseconds);一直在使用这些方法,却不知道他们的原理,今天就来解释一下他们的原理。
|
安全 API 调度
从源码与官方文档看之Handler篇(十)
每次阅读源码,我都想着许多过往云烟,可以说,一切不在一样,不过,想再多又如何,倒不如按下心思,在手中记下这一切更为妥当。还是看看这些充满智慧结晶的源码吧!
从源码与官方文档看之Handler篇(三)
前面我们说到dispatchMessage方法,今天我们继续往下看源码。
105 0
|
消息中间件 Java 调度
从源码与官方文档看之Handler篇(一)
好家伙,写了四篇文章才发现自己看源码的Handle所属的包不一样
|
Android开发
从源码与官方文档看之Handler篇(八)
后面更文节奏可以舒缓一些了,每篇文章的篇幅也会长些许。 废话不多说,我们继续看Handler类。
|
安全
从源码与官方文档看之Handler篇(四)
上回我们说到第一个Handler类的含有控制是否异步执行的构造函数,今天我们继续往下阅读,相信能更清楚的了解Handler类的机制。
从源码与官方文档看之Handler篇(五)
尽管前路坎坷,可我们还是继续走了下去,一转眼已经又到了第五篇了,每篇内容较少,所以后面整理完时,会汇总成一篇文章,相信这样做会更具有可读性。
|
消息中间件 Android开发
从源码与官方文档看之Handler篇(九)
今天我们来详细看看Handler的post()方法吧
|
安全 API
从源码与官方文档看之Handler篇(六)
今天继续看Handler类,构造方法已经基本全部看完,后面应该是一些类的一般方法之类的内容了,继续加油。
|
Java Android开发
从源码与官方文档看之Handler篇(二)
今天又发现自己原来是Handler这个类名打错了导致前面几篇一直再说Java的Handle,而安卓的是Handler,前一篇文章我们主要翻译了安卓官方对Handler的注释,这一篇我们来看看Handler类的一些属性,成员变量。