我正在学习Android,但仍然坚持这一说法。
来自谷歌:
请有人为我解释包含零的消息将执行的操作。谢谢
最佳答案
这意味着what
值。 what
本质上是一个整数,它使接收方可以识别接收到的消息。
您的handleMessage函数如下所示
public void handleMessage (Message msg)
系统会向您传递一个
Message
对象,您可以检查公共(public)字段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只是按照惯例关于android - Handler.sendEmptyMessage(0)中的零表示什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15338977/