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