我正在学习 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 只是按照惯例