2011-11-09 10 views
0

onResume()でタイマーを再起動する必要があります。これはonPause()timer.cancel()と呼びます。これどうやってするの?ここでキャンセル()を呼び出した後にタイマーを再起動します

は、私はタイマーをスタートコードは次のとおりです。

handler = new Handler(); 
     t = new Timer(); 
     t.scheduleAtFixedRate(new TimerTask() { 
      @Override 
      public void run() { 

       runOnUiThread(new Runnable() { 
        public void run() { 
         doReload2(); 
         populate(); 


        } 
       }); 

      } 

     }, 300, 30000); 

と、ここで私はタイマーを取り消す:

@Override 
protected void onPause() { 
    super.onPause(); 
    System.out.println("onPause!!!!!!"); 
    t.cancel(); 
} 

答えて

1

は次のように試してみてください:

Timer t; 

@Override 
void onCreate(){ 
    t = Timer(); 
} 

@Override 
void onResume(){ 
    super.onResume(); 
    t.scheduleAtFixedRate(new TimerTask() { 
     @Override 
     public void run() { 
      runOnUiThread(new Runnable() { 
       public void run() { 
        doReload2(); 
        populate(); 
       } 
      }); 
     } 
    }, 300, 30000); 
} 

@Override 
void onPause(){ 
    super.onPause(); 
    System.out.println("onPause!!!!!!"); 
    t.cancel(); 
} 
関連する問題