Timer-Task nicht mehr ausgeführt, nachdem unbestimmte Zeit in android
Ich bin ein Neuling in android. Ich bin, eine app zu entwickeln, in denen ein bestimmtes Stück code wird ausgeführt, nachdem alle 5 Sekunden im hintergrund.Um dies zu erreichen bin ich über ein service-mit timer-mit timer-Aufgabe. Für irgendwann seine Arbeitsmethoden in Ordnung, aber nach einer unbestimmten meinen Dienst ausgeführt wird, aber timer-task Stoppt automatisch in android. Hier ist mein code bitte um Hilfe. Vielen Dank im Voraus.
public void onStart(Intent intent, int startid) {
//this is the code for my onStart in service class
int delay = 1000; //delay for 1 sec.
final int period = 5000; //repeat 5 sec.
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
executeCode();
}, delay, period);
};
- 15 Sekunden, aber dein code sagt 5 Sekunden.
- sorry versehentlich worte 15 Sekunden 5 Sekunden eigentlich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meiner Meinung nach, sollten Sie AlarmManager mit einem IntentService zu planen, sich wiederholenden hintergrund Aufgaben anstelle des Timer-tasks. Ein Timer ist unzuverlässig und funktioniert nicht immer richtig, im Android-Framework. Auch, ein Timer wird nicht ausgeführt, wenn das Telefon schläft. Sie können Alarme aufwachen das Telefon zum ausführen von code mit AlarmManager.
Finden Sie unter:
https://developer.android.com/reference/android/app/AlarmManager.html
http://mobile.tutsplus.com/tutorials/android/android-fundamentals-scheduling-recurring-tasks/
http://android-er.blogspot.in/2010/10/simple-example-of-alarm-service-using.html
Im Falle von Telefon neu starten, müssen Sie den alarm auslösen-manager erneut. In dieser Anleitung finden Sie genaue Anweisungen, wie dies zu tun:
http://www.androidenea.com/2009/09/starting-android-service-after-boot.html
In der Regel TimerTask beendet, wenn das Gerät geht in den sleep-Modus für lange Zeit. Versuchen AlarmManager-Klasse für Ihre Anforderung. AlarmManager verwendet weniger Akku-Verbrauch zu.
Hier ist ein Beispiel, wie man mit AlarmManager
Ich denke, dass Sie Sie erreichen können diese Aufgabe besser, wenn Sie verwenden CountDown-Timer, die hat eine eingebaute Methode, die aufgerufen wird, nachdem die Zeit, die Sie angegeben haben
Beispiel
Bearbeiten
Sie können alle Funktion in der OnTick-Methode wird aufgerufen, in der alle 1000 Millisekunden im obigen Beispiel
Erfahren Sie mehr über es hier