2016-08-09 111 views
0

Ich habe derzeit ein Fragment, das ein ImageView generiert. Ich bin auf der Suche nach einer Möglichkeit, die Bildansicht, die alle 30 Sekunden generiert wird, zu aktualisieren. Die Bildansicht verwendet andere Funktionen, um sie zu generieren. Danke für jede Hilfe.Update Fragment alle 30 Sekunden

ImageView imageView = (ImageView) rootView.findViewById(R.id.qrCode); 
try { 
     Bitmap bitmap = encodeAsBitmap(STR); 
     imageView.setImageBitmap(bitmap); 
    } catch (WriterException e) { 
     e.printStackTrace(); 
} 

Antwort

2

können Sie verwenden, um die Handler Klasse aus den android.os für regelmäßige Updates auf was auch immer.

Beispielcode hier:

final Handler refreshHandler = new Handler(); 
Runnable runnable = new Runnable() { 
       @Override 
       public void run() { 
        // do updates for imageview 
        refreshHandler.postDelayed(this, 30 * 1000); 
       } 
      }; 
refreshHandler.postDelayed(runnable, 30 * 1000); 
+0

Wenn es versucht, diese den Imageview nicht in der Lage ist, auch zunächst aktualisiert werden. – hahahakebab

+0

@hahahakebab Ja, weil es nach 30sec getan wird. Setzen Sie Ihren ursprünglichen Code vor dem 'postDelayed' Anruf. –

0

Nun können Sie dies verwenden, um alle 30 Sekunden eine Aufgabe auszuführen.

Etwas wie folgt aus:

Timer timer = new Timer(); 
timer.schedule(new TimerTask(){ 
    @Override 
    public void run(){ 
     Bitmap bitmap = encodeAsBitmap(STR); 
     imageView.setImageBitmap(bitmap); 
    } 
}, 0, 30000);