Android-update-ui-handler in jeder Sekunde
Ich brauche ein wenig Hilfe bei der Aktualisierung meiner UI von Runnable/Handler jede Sekunde. Ich bin mit diesem code :
Runnable runnable = new Runnable() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
prBar.setProgress(myProgress);
y = (double) ( (double) myProgress/ (double) RPCCommunicator.totalPackets)*100;
txtInfoSync1.setText(Integer.toString((int)y) + "%");
prBar.setMax(RPCCommunicator.totalPackets);
int tmp = totalBytesReceived - timerSaved;
Log.w("","totalBytesReceived : "+totalBytesReceived + " timerSaved : "+timerSaved );
Log.w("","tmp : "+tmp);
if (avgSpeedCalc.size() > 10)
{
avgSpeedCalc.remove(0);
}
avgSpeedCalc.add(tmp);
int x = 0;
for (int y=0;y<avgSpeedCalc.size();y++)
{
x += avgSpeedCalc.get(y);
Log.d("","x : "+x);
}
x = Math.round(x/avgSpeedCalc.size());
Log.e("","x : "+x);
timerSaved = totalBytesReceived;
txtSpeed.setText(Integer.toString(x));
}
});
}
};
Habe ich versucht mit handler.postDelayed(runnable, 1000);
im onCreate()
, aber den Thread nie gestartet. Oder auch wenn ich versuche mit runnable.run();
, funktioniert es immer noch nicht.
Irgendwelche Ideen, wie kann ich starten runnable/handler und update der ui-jede Sekunde?
InformationsquelleAutor Android-Droid | 2012-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum sind Sie die Schaffung eines runnable in ein runnable?
Versuchen Sie dies:
aktualisiert meine Antwort und stellte eine fahne
Eigentlich
handler.removeCallbacks(runnable);
tun die gleiche Sache.Das ist wahr, dies ist vorzuziehen, wenn Sie die Verzögerung zu lang ist, in Bezug auf das 1sec Intervall, es macht keinen wirklichen Unterschied
der aktuelle code ausgeführt wird, für immer.
mStopHandler
ist falsch, so!mStopHandler
wahr ist, und derpostDelayed(this, 1000);
starten das runnable nach 1 Sekunde.InformationsquelleAutor WarrenFaith
Wenn Sie möchten, aktualisieren Sie Ihre UI-ich denke, dies ist die beste Wahl
InformationsquelleAutor Sumit