6

私はAndroidを学んでいて、この声明で立ち往生しています。グーグルから:

what値のみを含むメッセージを送信します。

戻り値

メッセージがメッセージキューに正常に配置された場合はtrueを返します。通常、メッセージキューを処理しているルーパーが終了しているため、失敗するとfalseを返します。

誰かが私のためにゼロを含むメッセージが何をするかを説明してください。ありがとう

4

1 に答える 1

15

それはwhat価値を意味します。what基本的には、受信者が受信したメッセージを識別できるようにする整数です。

handleMessage関数は次のようになります

public void handleMessage (Message msg)

オブジェクトが渡されMessage、パブリックフィールドをチェックwhatして、メッセージの内容を把握できます。(msg.what

例えば。

what1 for successと2種類のメッセージを送信します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は任意の値に置き換えることができます。この場合、メッセージのタイプは1つだけであり、ハンドラーはそれを理解します。したがって、受信したメッセージの種類を確認する必要はなく、メッセージを受信するだけで済みます。だからsendEmptyMessage(AnyInteger)うまくいくだろう。0は慣例によるものです

于 2013-03-11T12:54:17.487 に答える