Ich postDelayed
Methode des Handler
um eine Aktion nach der bestimmten Zeit auszuführen mit:Wie ändere/setze ich die verzögerte Zeit des Handler-Posts?
private static int time_to_wait = 2000;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// Make Action
}
}, time_to_wait);
jetzt in der Mitte der Wartezeit möchte ich den Wert der verbleibenden Millisekunden aufgrund sich ändern einige Verarbeitungsergebnisse, lassen Sie uns sagen, dass es jetzt gewartet 1000 ms und ich möchte es von wieder zu zählen beginnt, So setze ich den time_to_wait
Wert auf 2000, aber es dauert nicht, dass es zählen, wie es nur dauert der var-Wert (2000) und wartet nur diese Zeit unabhängig von der Änderung der time_to_wait
Wert auf einen anderen Wert.
Sie müssen die Runnable abbrechen und neu posten, glaube ich. [Stackoverflow] [1] [1]: http://stackoverflow.com/questions/7407242/how-to-cancel-handler-postdelayed – Kaediil
@Kaediil das sein wird nicht so effizient in meinem Fall –
'int' ist ein primitiver Typ und wird als Wert übergeben - der Wert wird kopiert und ist sowieso nicht mit der originalen Primitivvariablen verbunden. Wenn Sie die Variable 'int' an eine Methode übergeben und dann versuchen, diese Variable an einer anderen Stelle (außerhalb dieser Methode) zu ändern, werden die Änderungen an der Variablen nicht in dieser Methode wiedergegeben, da sie eine eigene Kopie der Variablen – Drew