2011-07-02 6 views
0

ゲーム用のタイマーが必要です。ユーザーが画面をタップすると、タイマーは一時停止してから再開します。まず、Timerを一度作成して、MyTimerTask.cancel()を一時停止し、再開するためにTimer.schedule(new MyTimerTask, ...)を作成しようとしました。しかし、タスクマネージャーは、タイマーが一時停止すると、私のアプリケーションが膨大なCPUを消費することを示しています(私はAndroidで開発しています)。私が理解するように、Timerは空のキューを実行します。今すぐ私は.cancel().purge()TimerMyTimerTaskに沿ってそれを再作成します。 Timerを使用するのは正しいですか?または私は何かを理解していないのですか?java.util.Timer - 正しく使うには?

+0

「タイマーが一時停止しています」とはどういう意味ですか?あなたはあなたの仕事をキャンセルしたことを意味しますか? –

+0

@ salman.mirghasemiそれは私に関係なくです。私は 'Timer'が' MyTimerTask'の 'run()'を止めて、必要なときにやり続けます。 –

+0

あなたの質問にあなたのコードを追加することが可能な場合。 –

答えて

1

声明場合は、同じようにあなたのゲームのメインループに追加することができます。

while(runMainLoop) 
{ 
    if(gameIsNotPaused) 
    { 
    updatePhysics(); 
    doDraw(); 
    } 
} 

そして、ユーザが一時停止ボタンを押したときに、あなただけの偽/ trueに設定gameIsNotPaused。

+0

ありがとう、私はゲームループを使用するためにゲームを書き直すつもりです。私はタイマーで十分だろうと思っていましたが... –

+0

UIスレッドをブロックしないように、別のスレッドで実行するにはゲームループが必要です。 – Emiam

関連する問題