メインのUIスレッドにHandler
を作成します。波が終了するというメッセージを処理させます。ゲームスレッドでは、Handler
のHandler.sendMessage(WAVE_END).sendToTarget()
を呼び出して、UIスレッドに波が終了したことを伝えます。 Handler
は、必要なコードを実行します。
例:あなたのゲームのスレッド呼び出しで次に
public int MSG_WAVE_END = 1;
private final Handler endWave = new Handler() {
@Override
public void handleMessage(Message msg) {
if(msg.what == MSG_WAVE_END) { // the number is arbitrary. Traditionally a constant
// Do what you want to do when a wave ends like startActivityForResult()
}
}
}
これはあなたの波が終了したとき:
endWave.obtainMessage(MSG_WAVE_END).sendToTarget();
Handler
は、本質的にコールバックとして機能します。スレッド間で「メッセージ」を送信して、スレッドが作成されたときにコードを実行することができます。必要に応じて、2つの整数引数とオブジェクトを渡すこともできます。それはオブジェクトに含まれます。