16

AIを搭載したAndroidボードゲームを作っています。AIは順番を取得し、一連のアクションを呼び出す必要があります。その後、AIは、更新するためにカスタムビューに無効化を投稿します。

これらのアクションを遅くして、AIが点滅するのではなく、順番が回っているのをユーザーが確認できるようにする必要があります。

私はこれらの線に沿って何かを試しました

    try {
        doFirstThing();
        Thread.sleep(500)
        //post invalidate

        doNextThing();
        Thread.sleep(1000)
        //post invalidate
     }
     catch (Exception e) {
     }

ただし、これはまったく効果がありません。また、これが明らかでない場合、これは別のスレッドで実行されています。

私がハンドラーを見た私の最良のオプションは何ですか?しかし、毎回ビューを更新する一連のタスクを順番に実行する必要があるため、ハンドラーは正しく必要ありません。

4

2 に答える 2

21

ハンドラーを使用します。これは、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
于 2013-01-24T21:21:34.530 に答える
16

サンプルを追加するだけです。次のコードは、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);
于 2015-02-26T21:52:07.573 に答える