TimerTasks sind nicht ideal für die Verwendung in einer Android-Umgebung, da sie nicht kontextsensitiv sind. Wenn Ihr Kontext sich verflüchtigt, wartet die TimerTask immer noch geduldig im Hintergrund und feuert möglicherweise Ihre App ab, weil ihre Aktivität zuvor beendet wurde. Es kann auch Referenzen zu Ihrer Aktivität enthalten, nachdem diese geschlossen wurde. Dadurch wird verhindert, dass sie als Garbage Collected erfasst werden und Ihre App möglicherweise nicht mehr genügend Arbeitsspeicher zur Verfügung hat.
Verwenden Sie stattdessen postDelayed (), wodurch die Aufgabe automatisch beendet wird, wenn die Aktivität beendet wird.
%Vor% Falls Sie die Aufgabe jemals manuell abbrechen müssen, können Sie removeCallbacks(r)
verwenden, wobei r für die runnable-Datei steht, die Sie zuvor gepostet haben.
Tags und Links android