Android 在Handler.sendEmptyMessage(0)中,零是什么意思

Android 在Handler.sendEmptyMessage(0)中,零是什么意思,android,Android,我正在学习Android,我被这句话困住了。 来自谷歌: 发送仅包含what值的消息 返回 如果消息已成功放置到消息中,则返回true 队列失败时返回false,通常是因为循环器处理失败 消息队列正在退出 有人请为我解释一下包含零的消息将做什么。谢谢它的意思是what值what基本上是一个整数,允许接收者识别其接收的消息 您的handleMessage函数如下所示 public void handleMessage (Message msg) public void handleMessage

我正在学习Android,我被这句话困住了。 来自谷歌:

发送仅包含what值的消息

返回

如果消息已成功放置到消息中,则返回true 队列失败时返回false,通常是因为循环器处理失败 消息队列正在退出


有人请为我解释一下包含零的消息将做什么。谢谢

它的意思是
what
what
基本上是一个整数,允许接收者识别其接收的消息

您的handleMessage函数如下所示

public void handleMessage (Message msg)
public void handleMessage (Message msg) {
    switch (msg.what) {
        case 1:
            //success handling
            break;

        case 0:
            //failure handling
            break;
    }
}
您将收到一个
消息
对象,您可以检查公共字段
what
,了解消息的内容。(
msg.what

例如

您发送两种类型的消息,成功时使用
what
1,失败时使用
0

所以你的handleMessage函数看起来像这样

public void handleMessage (Message msg)
public void handleMessage (Message msg) {
    switch (msg.what) {
        case 1:
            //success handling
            break;

        case 0:
            //failure handling
            break;
    }
}
现在,您可以将
sendEmptyMessage(0)
用于成功,将
sendEmptyMessage(1)
用于失败

请记住,您不必发送空消息,您也可以发送附加了更多数据的消息对象

例如,发送一条消息,其中包含一些关于成功的文本,您可以这样做

Message.obtain(mHandler, 0, "Success text")
同样,失败也是如此


现在,根据零的含义,它只是发送一条空消息,0可以被任何值替换。在这种情况下,您只有一种类型的消息,而处理程序确实理解这一点。所以它不需要检查它收到了什么样的消息,它只需要接收一条消息。因此
sendEmptyMessage(AnyInteger)
可以正常工作。0只是按照惯例

这就是,就像医生说的,消息。他们应该在他们的文档中放上你的解释,真的很有帮助!但为什么他们称它为
emptyMessage
,而实际上它是
oneIntMessage