-3
基本的に、私は各ユーザーに対して5 Runnablesを持っています。Android:Runnable内のRunnable
各実行可能ファイルの内部では、変数が変更されるまで待つ必要があります。私はセマフォまたはCountDownLatchを使用しています。
各ランナブルの内部には、待機するための実行可能ファイルがあります。
例を示します。 r1はユーザであると考えられる実行可能ファイルなので、決して終了しません。
final Handler handler = new Handler();
Runnable r1 = new Runnable() {
@Override public void run() {
// here must be another runnable for waiting
Runnable r2 = new Runnable() {
@Override public void run() {
if (condition) {
latch.countDown();
// ending the runnable
handler.removeCallbacks(r2);
} else {
// keep waiting
handler.postDelayed(r2, 1000);
}
}
}
latch.await();
// restarting the runnable
handler.postDelayed(r1, 1000);
}
}
latch.await()
を使用しているときの問題は、UIをブロックするようにメインスレッドで実行されていることです。
さまざまなスレッドでこれらの実行可能ファイルをどのように起動するのか考えてみましょうか?
なぜあなたはそれらを入れ子ですか? – Chisko
実際に達成したいことは何ですか? – pskink
[ネストされたpostDelayed/Runnable/Handler Android]の可能な複製(http://stackoverflow.com/questions/11197543/nested-postdelayed-runnable-handler-android) – Chisko