1

まず、以下のコードを見てください。

public class SampleActivity extends Activity {

    private final Handler mLeakyHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            // AAAA
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Super. onCreate (savedInstanceState);

        // Post a message and delay its execution for 10 minutes.
        mLeakyHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                // BBBB
            }
        }, 60 * 10 * 1000);

        // Go back to the previous Activity.
        finish();
    }
}

これがメモリリークを引き起こす可能性があるという事実を無視してください(私は知っています)。私の質問は次のとおりです。

  1. AAAA と BBBB は一緒に実行されますか? そうでない場合、どちらが最初に実行されますか?
  2. コードによると、メッセージは onCreate() から送信されないので、AAAA は空のメッセージを取得しますか?
  3. コードを実行すると、AAAA が実行されていないようです。BBBB のみが実行されます。なぜそうなのですか?

前もって感謝します。

4

1 に答える 1

0

AAAA と BBBB は一緒に実行されますか?

AAAA のみが実行さpost()Runnableます。BBBB を実行するには、いずれかのメソッドを使用して にメッセージを送信する必要があります。詳細については、ドキュメントを参照してください。HandlerRunnableHandlersendMessage()

コードによると、メッセージは onCreate() から送信されないので、AAAA は空のメッセージを取得しますか?

いいえ。上で説明したように、handleMessage()は呼び出されません。

コードを実行すると、AAAA が実行されていないようです。BBBB のみが実行されます。なぜそうなのですか?

繰り返しますが、最初の答えはその理由を説明しています

于 2013-10-18T15:27:53.710 に答える