it-swarm.com.de

Android - Ausführen einer Hintergrundaufgabe alle 15 Minuten, auch wenn die Anwendung nicht ausgeführt wird

Ich muss eine Hintergrundaufgabe erstellen, die alle 10/15 Minuten ausgeführt wird (spielt keine Rolle, ist auch gut), auch wenn die Anwendung nicht ausgeführt wird.

Wie kann ich das erreichen? Ich kann mir nicht vorstellen, wie ich den Kopf darum wickle.

Ich habe gelesen, dass ich irgendeine runnable () - Funktionalität verwenden könnte oder einen Hintergrunddienst oder einen AlarmManager verwenden könnte. Ich habe an einen Hintergrunddienst gedacht, da dies auch getan werden muss, wenn die Anwendung selbst nicht läuft.

Wie kann ich das besser machen und wie kann ich das machen?

17
DijkeMark

Sie haben die Zeit (das Intervall) für die Ausführung eines Codefragments festgelegt. Die Verwendung von AlarmManager ist besser, da es energieeffizienter ist. Wenn Ihre App eine Art Ereignis anhören muss, ist der Service genau das, was Sie brauchen.

public static void registerAlarm(Context context) {
    Intent i = new Intent(context, YOURBROADCASTRECIEVER.class);

    PendingIntent sender = PendingIntent.getBroadcast(context,REQUEST_CODE, i, 0);

    // We want the alarm to go off 3 seconds from now.
    long firstTime = SystemClock.elapsedRealtime();
    firstTime += 3 * 1000;//start 3 seconds after first register.

    // Schedule the alarm!
    AlarmManager am = (AlarmManager) context
            .getSystemService(ALARM_SERVICE);
    am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
            600000, sender);//10min interval

}
22
wtsang02

Alarm Manager (Systemdienst) vs Remote Service mit innerer Alarmimplementierung (separater Prozess)?

Der Alarm Manager ist Ihre Wahl, denn er hat bereits das, was Sie brauchen, Sie müssen lediglich die Alarmintervalle einstellen 

2
pvllnspk

Sie können dies auch über einen SyncAdapter Erreichen. Hier sehen Sie ein Beispiel zum Anschauen und Inspirieren

SyncAdapter-Beispiel

1
Benoit

Der beste Ansatz wurde bei Google I/O 2018 - WorkManager eingeführt.

Dokumentation finden Sie hier .

0
mtwain