2017-02-09 7 views
0

Ich habe 2 Fragmente und eines davon versuche ich einige Ansichten nach einigen Datenaktualisierung zu aktualisieren. Meine Ansichten werden ordnungsgemäß aktualisiert, wenn ich in Fragmenten bin, wenn ich diese Ansichten habe. Nach dem Wechsel zu einem anderen Fragment funktioniert mein Thread weiterhin einwandfrei. Aber nachdem ich für das erste Fragment zurückgekehrt bin, können meine Ansichten nicht aktualisiert werden.Ansichten können nicht aktualisiert werden, nachdem das Fragment geändert wurde

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(); 
       } 
      } 
     } 
    }; 

Dies ist die Update-Funktion:

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

Hinweis mein Thread weiterhin Daten zu aktualisieren, meine Frage ist, warum Ansichten nicht aktualisiert werden kann.

+0

Warum verwenden Sie Threads so? – Stefan

+0

@Stefan Nur um meine Ansichten zu aktualisieren. Gibt es eine andere Art und Weise? – learner

+0

Handler zum Beispiel: http://stackoverflow.com/questions/6964011/handler-vs-asynctask-vs-thread – Stefan

Antwort

0

Vielleicht erstellen Sie beim Wechseln ein neues Fragment?

+0

Wie ich schon sagte. – learner

+0

Ich verstehe es nicht. Ist es in Ihrem Fall unvermeidlich, ein neues Fragmentobjekt zu erstellen? Ist es nicht möglich, das gleiche Objekt zu behalten und es nur mit Transaktionen zu verstecken? – Duke79

+0

Ich benutze FragmentTransaction.replace.commit für jedes Fragment. Sie werden geändert, wenn ich eine Taste drücke – learner

Verwandte Themen