我正在学习Android,但仍然坚持这一说法。
来自谷歌:



请有人为我解释包含零的消息将执行的操作。谢谢

最佳答案

这意味着what值。 what本质上是一个整数,它使接收方可以识别接收到的消息。

您的handleMessage函数如下所示

public void handleMessage (Message msg)

系统会向您传递一个Message对象,您可以检查公共(public)字段what以确定消息的含义。 (msg.what)

例如。

您发送两种类型的消息,其what值为1 for success0 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/

10-12 04:36