2017-02-09 12 views
0

2つのフラグメントがあり、そのうちの1つがデータの更新後に一部のビューを更新しようとしています。私のビューは、私がこれらのビューを持っているときに断片にとどまるとうまく更新されます。別のフラグメントに変更した後も、スレッドは正常に動作し続けます。 しかし、私が最初の断片に戻ると、私の意見は更新できません。フラグメントが変更された後でビューを更新することはできません

myThread = new Thread(){ 
     @Override 
     public synchronized void run(){ 
      while(true){ 
       try { 
        sleep(2000); 
        myActivity.runOnUiThread(new Runnable(){ 
         @Override 
         public void run(){ 
          updateViews(); 
         } 
        }); 

       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    }; 

これは、更新機能である:

private void updateViews(){ 
    textView.setText(_chronometerService.getTime()); 
} 

は、ビューを更新することはできませんなぜ私の問題があり、私のスレッドがデータを更新し続けて注意してください。

+0

なぜあなたのスレッドを使用していますか? – Stefan

+0

@Stefan私の意見を更新するだけです。別の方法がありますか? – learner

+0

ハンドラ例:http://stackoverflow.com/questions/6964011/handler-vs-asynctask-vs-thread – Stefan

答えて

0

切り替え中に新しいフラグメントを作成している可能性がありますか?

+0

私が前に言ったように。 – learner

+0

私は分かりません。あなたのケースで新しいフラグメントオブジェクトを作成することはどうしても避けられませんか?同じオブジェクトを保持してトランザクションを使用して非表示にすることはできませんか? – Duke79

+0

私は各フラグメントにFragmentTransaction.replace.commitを使用します。ボタンを押すと変更されます。 – learner

関連する問題