我正在学习Android,我对这句话感到困惑。 来自谷歌:
发送仅包含什么值的消息。
返回
如果邮件已成功放入邮件,则返回true 队列。失败时返回false,通常是因为looper处理 消息队列正在退出。
有人请为我解释一下包含零的消息会做什么。感谢
答案 0 :(得分:15)
表示what
值。 what
基本上是一个整数,允许接收者识别它收到的消息。
您的handleMessage函数如下所示
public void handleMessage (Message msg)
您传递了一个Message
对象,您可以检查公共字段what
以找出该消息的内容。 (msg.what
)
例如
您发送了两种类型的消息,what
值1 for success
和0 for failure
所以你的handleMessage函数看起来像这样
public void handleMessage (Message msg) {
switch (msg.what) {
case 1:
//success handling
break;
case 0:
//failure handling
break;
}
}
现在,您可以sendEmptyMessage(0)
获得成功,sendEmptyMessage(1)
获取失败。
请记住,您不必发送空消息,您也可以发送一个Message对象,其中附加了更多数据
例如,发送带有一些成功文本的消息,你可以做到
Message.obtain(mHandler, 0, "Success text")
同样失败
现在根据零意味着,它只是发送一个空消息,0可以被任何值替换。在这种情况下,您只有一种类型的消息,而Handler确实理解这一点。因此,它不需要检查它收到的消息类型,只需要接收消息。所以sendEmptyMessage(AnyInteger)
可以正常工作。 0只是按惯例