2016-10-25 6 views
0

私がアンドロイドアプリでハンドラを持っており、これは本当に良いハンドラのAndroidメーカー

下に動作しますが、私のハンドラ

Runnable mStatusChecker = new Runnable() { 
    @Override 
    public void run() { 
     try{ 
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
      downloadusernamelist(); 
      isInternetWorking(); 
      syncDataSftp(); 
     }finally { 
      mHandler.postDelayed(mStatusChecker, mInterval); 
     }}}; 

のためのコードは、今、このハンドラは、ランチャーの活動であると私は次のアクティビティに行くとき最初のランチャーアクティビティに戻ります。

最初のアクティビティに戻るたびにハンドラが再起動しないようにするにはどうすればよいですか?

+0

アクティビティのライフサイクルを知っていますか? –

+0

上記のコードがCreateメソッドにない場合は、アクティビティライフサイクルのCreateメソッドに入れてみてください –

答えて

1

などのブール値を定義できます。

private boolean firstTime = true; 

次に、firstTimeブール値に従ってハンドラの起動を決定できます。

if(firstTime){ 
    runHandler(); 
    firstTime = false; 
} 

また、firstTime値をonSaveInstanceに保存し、その値をonCreateに復元する必要があります。

関連する問題