1

OK、ハンドラーについて質問があります。

シナリオ: ハンドラー mHandler、Runnable mRunnable、int mState。

mRunnable は、mState に従って何かを行うことになっています。

Runnable mRunnable = new Runnable() {

@Override
        public void run() {

            switch (mState) {
            case 1:
                            firstCase();

                break;
            case 2:
                            secondCase();

                break;

            default:
                break;
            }
        }

};

ここで、mHandler.postDelayed(mRunnable, 3000) コマンドを発行します。

議論のために、mState が最初は 1 で、2.5 秒後に 2 に変わるとします。

私の質問は次のとおりです。どの関数が実行されますか? firstCase() または secondCase()

自分で試してみてくださいと答えるかもしれませんが、この質問をする本当の意図は、この動作の背後にある理由を知ることです。

みんなありがとう :)

4

1 に答える 1