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()
自分で試してみてくださいと答えるかもしれませんが、この質問をする本当の意図は、この動作の背後にある理由を知ることです。
みんなありがとう :)