User Tools

Site Tools


android_job-scheduling

Android Job-Scheduling

Intelligent Job-Scheduling

Intelligent Job-Scheduling

Eine kleine Übersicht bei Google.

  • AlarmManager
    • für API < 21 (Android 5.0)
    • angeblich nicht robust
  • JobScheduler
    • für API ab 21 (Android 5.0), mit Compat Paket auch auf älteren Geräten möglich
  • Firebase JobDispatcher
    • auch für API < 21 (Android 5.0)
    • basiert auf Google Play Services
      • d.h. App muss im Play Store sein
      • aber angeblich auch ohne Play Store möglich
    • angeblich sehr robust
      • soll auch auf Android 8.0 funktionieren, wo andere Möglichkeiten praktisch nicht garantiert sind
  • SyncAdapter
  • Additional facilities (AbstractThreadedSyncAdapter)

Android JobScheduler Sample

Bibliotheken

JobSchedulerCompat

https://github.com/Doist/JobSchedulerCompat

Bibliothek, um abhängig vom API Level und der Verfügbarkeit der Google Play Dienste, den bestmöglichen Scheduler zu verwenden.

Zitat:

For each job, the best possible scheduler is used:

  • JobScheduler (API 21 and above)
  • GcmNetworkManager (API 20 and below, if Google Play Services is available)
  • AlarmManager (API 20 and below, if Google Play Services is unavailable)

Vorteile:

  • API ist kompatibel zu JobScheduler

Android Job by Evernote

https://github.com/evernote/android-job

A utility library for Android to run jobs delayed in the background. Depending on the Android version either the JobScheduler, GcmNetworkManager or AlarmManager is getting used.

Vorteile:

  • Von Evernote
    • gut gepflegt
    • breite Benutzerbasis

Nachteile:

  • hat ein eigenes Interface, welches inkompatibel zu JobScheduler ist

Fazit

https://stackoverflow.com/questions/42963494/job-scheduler-vs-background-service → siehe Antwort von CommonsWare

Kurzfassung:

  • die einzige Möglichkeit einen Job periodisch auszuführen, wenn das Gerät im Doze-Mode ist, ist GCM (aka Firebase Cloud Messaging) zu verwenden
    • das gilt für Android 6 und insbesondere für Android 7, wo “partial Doze Mode” eingeführt wurde
  • ab Android 5 kann man JobScheduler verwenden
  • auf Android < 5 kann man auch AlarmManager verwenden
android_job-scheduling.txt · Last modified: by 127.0.0.1