Ich führe ordnungsgemäß eine zeitgesteuerte Aufgabe für Aktivitäten auswie folgt. Wenn die Aktivität onResume aktiv ist, wird jedoch die Ausnahme "Timer-Task ist bereits geplant" ausgelöst. Ich bringe den Timer ab, sobald die Aufgabe ausgeführt wurde. Wie man es löst? Danke dir
final Runnable setButton = new Runnable() {
public void run() {
myClass.aBridge.button_back.setVisibility(View.INVISIBLE);
timer.cancel();
}
};
TimerTask task = new TimerTask(){
public void run() {
webPush.this.runOnUiThread(setButton);
}
};
@Override
protected void onResume() {
super.onResume();
timer = new Timer();
timer.schedule(task, 5000);
}
Task wird vor onResume einmal aufgerufen als:
timer = new Timer();
timer.schedule(task, 5000);
Antworten:
2 für die Antwort № 1Sie können timer.schedule () nur einmal für jede TimerTask-Instanz aufrufen. Erstellen Sie eine neue Instanz, bevor Sie sie planen.
edit: Für Ihren Code initialisieren Sie die TimerTask-Membervariable nicht an der Stelle, an der Sie sie definieren. Erstellen Sie stattdessen eine neue Instanz in onResume (), bevor Sie sie planen.