2

Ich muss eine lang andauernde Netzwerkaufgabe planen (Dateien herunterladen) zu einer bestimmten Zeit (zB während der Nachtstunden). Jetzt kann es mit Job-Scheduler getan werden, aber in Doc sagt es, dass es für kürzere Aufgaben (weniger als 3 Minuten) verwendet werden sollte, eine andere Option verwendet Dienst mit Alarm-Manager, aber das wird abgeraten. Also, was soll man zwischen diesen beiden wählen oder gibt es noch einen anderen Ansatz?Wie lange Netzwerkaufgaben zu bestimmten Zeiten in Android planen?

+2

AlarmManager ist der einzige dokumentierte Weg, den ich kenne. Was ist davon abgeraten? Wo hast du das gefunden? –

Antwort

1

Verwenden Sie am besten eine AlarmManager, um eine IntentService zu planen, die zu Ihrer spezifischen Zeit und zu einem bestimmten Intervall ausgeführt wird.

Sie werden wollen, dass der Alarm eine WakefulBroadcastReceiver feuert, die dann Ihren Dienst startet, weil es so klingt, als ob Ihre Netzwerkaufgabe nachts ausgeführt wird, wenn das Telefon schläft. Dadurch wird sichergestellt, dass der Dienst sofort ausgeführt wird. Stellen Sie sicher, dass die Wake-Sperre nach Abschluss der Tasks aufgehoben wird.

die WakeLock zu lösen, haben dies am Ende Ihres Service:

MyWakefulReceiver.completeWakefulIntent(intent); 

Wo MyWakefulReceiver der Empfänger Sie die WakefulBroadcastReceiver erstreckt gemacht. Wenn Sie weitere Hilfe bei der Einrichtung benötigen, lassen Sie es mich wissen.

Verwandte Themen