私はAIを特徴とするAndroidボードゲームを構築しています。AIは順番を取得し、一連のアクションを呼び出す必要があります。その後、無効化をカスタムビューに投稿して更新します。
AIが点滅するのではなく、順番が回っているのをユーザーが確認できるように、これらのアクションを遅くする必要があります。
私はこれらの線に沿って何かを試しました
try {
doFirstThing();
Thread.sleep(500)
//post invalidate
doNextThing();
Thread.sleep(1000)
//post invalidate
}
catch (Exception e) {
}
ただし、これはまったく効果がありません。また、これが明らかでない場合、これは別のスレッドで実行されています。
私がハンドラーを見た私の最良のオプションは何ですか?しかし、ビューを毎回更新する一連のタスクを順番に実行する必要があるため、ハンドラーは正しく必要ありません。
ハンドラーを使用します。これは、UIスレッドから実行する場合に適しています...
final Handler h = new Handler();
final Runnable r2 = new Runnable() {
@Override
public void run() {
// do second thing
}
};
Runnable r1 = new Runnable() {
@Override
public void run() {
// do first thing
h.postDelayed(r2, 10000); // 10 second delay
}
};
h.postDelayed(r1, 5000); // 5 second delay
サンプルを追加するだけです。次のコードは、UIスレッドの外部で実行できます。間違いなく、Androidでタスクを遅らせるにはハンドラーを使用する必要があります
Handler handler = new Handler(Looper.getMainLooper());
final Runnable r = new Runnable() {
public void run() {
//do your stuff here after DELAY milliseconds
}
};
handler.postDelayed(r, DELAY);