2017-06-29 12 views
0

私はアクティビティ2で2つのアクティビティを持っています。アクティビティを作成するときにタイマーを持っています。アクティビティon_Destroyでタイマーを開始しました。timer_task.cancel();二度目のactivity2を開いたときが、新しいタイマータスクが作成され、キャンセルまたは最後のタイマーを破壊し、タイマーin android java

private TimerTask mTimerTask; 
private void doTimerTask(){ 
    nCounter = 4; 

    qtimer.setMax(20); 

    if(mTimerTask!=null) { 
     mTimerTask.cancel(); 
    } 

    mTimerTask = new TimerTask() { 
     public void run() { 
      handler.post(new Runnable() { 
       public void run() { 
        Log.d("Timerrrr",nCounter+""); 
        if(nCounter<1){ 
         Finished(); 
        }else { 
         qtimer.setProgress(nCounter); 
         nCounter--; 
        } 
       } 
      }); 
     }}; 

    // public void schedule (TimerTask task, long delay, long period) 
    t.schedule(mTimerTask, 0, 1000); // 

} 

private void stopTask() { 

    if (mTimerTask != null) { 
     Log.d("nCounter canceled",nCounter+""); 
     mTimerTask.cancel(); 
    } 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    mTimerTask.cancel(); 
    MainActivity.this.finish(); 
} 

答えて

0

はこれを試してみてください2タイマーをしながら、一つの活性

私のコードで実行されていません...

public void stopTimerTask(View v) {  
    //stop the timer, if it's not already null 
    if (mTimerTask != null) { 
     mTimerTask.cancel(); 
     mTimerTask = null; 
    } 
} 

stopTask()メソッドはどこから呼び出されますか?

mTimerTask.cancel();onDestroy()に入れないでくださいが、onStop()に入れてください。

私はこれがあなたを助けてくれることを願っています。

+0

ありがとうございました 私は以前これを使用しましたが、動作しません。 アクティビティが破棄されると、タイマーも停止しますが、アクティビティが2回目に呼び出されたとき タイマが2回初期化されました – Android

+0

onStop()を入れてみましたか? – zephyr

+0

はい私はそれを(onstop、onDestroy、onPressBack)に入れました、私はSystem.exit(0)を使用して、働いていますが、真の方法ではありません – Android