2011-07-07 10 views
2

私はいつもメソッドが呼び出されたときにメソッドの開始を遅らせることをやめていました。私は更新メソッドを持っていて、開始する前に3秒の遅延を追加したかったのです。メソッドの開始遅延

ありがとうございました

+0

を記述する必要があります。あなたのコードに「スリープ」や「遅延」を加えることを検討しているときは、ほとんど常に間違ったことです。 –

+0

スプライトが非常に速く作成されるのを止める必要がありました。 – Manji

答えて

3

これは、Handlerにとってはうまくいくようです。 (あなたのコードが含まれている必要があります)実行可能を投稿するためにそれを使用し、あなたの活動にハンドラを作成し、そして:official doc内のハンドラの

handler.postDelayed(new Runnable(){ 
    public void run(){ 
     // Your code goes here... 
    } 
}, 3000); // Delay by 3000ms 

詳しい情報。

+0

それは完璧に働いてくれてありがとう、私はそれをそれのように使うことができるか分からなかった。 – Manji

0

あなたはコールバックやストレートポーズを考えていますか?

遅延を導入するにはThread.sleep()を使用できますが、アプリケーションがシングルスレッドの場合、アプリケーション全体に遅延が発生します。

このメソッドを実行するスレッドを生成するには、スレッドを3秒間スリープ状態にしてからScheduledThreadPoolExecutorを使用して3秒間の初期遅延を持つ実行可能ファイルを実行します。

+0

これはシングルスレッドであり、更新メソッド内の内容を独自のスレッドの内部に入れることで問題が発生します。 – Manji

0

ここに見られるようにあなたは、単にのThread.sleep()コマンドを追加することができます:あなたはそれを行う必要があり、なぜあなたは

try{ 
    Thread.sleep(4000); 
} catch (InterruptedException ie) 
関連する問題