我正在学习 Android,但我一直坚持这个说法。来自谷歌:
发送仅包含 what 值的消息。
退货
如果消息已成功放入消息队列,则返回 true。失败时返回 false,通常是因为处理消息队列的 looper 正在退出。
有人请为我解释包含零的消息将做什么。谢谢
我正在学习 Android,但我一直坚持这个说法。来自谷歌:
发送仅包含 what 值的消息。
退货
如果消息已成功放入消息队列,则返回 true。失败时返回 false,通常是因为处理消息队列的 looper 正在退出。
有人请为我解释包含零的消息将做什么。谢谢
这意味着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 只是按照惯例