2017-05-29 2 views
2

According to the documentation, wie von Android O-Dienste werden einige Minuten gestoppt, nachdem die App nicht mehr im Vordergrund ist.JobScheduler Verhalten auf Android O

Die Dokumentation schlägt vor, dass die meisten Dienste durch JobScheduler-Jobs ersetzt werden können. Meine Frage ist - haben Jobs auch irgendein besonderes Verhalten, oder verhalten sie sich genauso wie Services vor Android O? Können sie "für immer" leben (so lange das System den Speicher nicht benötigt), oder tötet das System sie auch am Ende eines bestimmten Fensters ab?

Antwort

6

Können sie "für immer" leben (solange das System den Speicher nicht benötigt), oder tötet das System sie auch am Ende eines bestimmten Fensters?

Nein. In meinem Test haben Sie ~ 10 Minuten, im Gegensatz zu ~ 1 Minute für einen regelmäßigen Service.

Wenn Sie einen Service benötigen, der für immer läuft, müssen Sie es einen Vordergrund Service machen sein (startForegroundService() auf Android O + oder startService() Plus startForeground() auf Android 7.1 und früher).

+0

Wie ist der Status meiner App während dieser 10 Minuten? Wie ich es verstehe gibt es 3 Zustände - Vordergrund, dann das 1 Minute "Fenster", dann Leerlauf. Wenn ich den Start eines Jobs nach dem Leerlauf der App einplane, ist der Status der App gleich dem "Fenster"? –

+0

@OriWasserman: Ich habe nicht speziell überprüft, sorry. – CommonsWare

+1

Ich habe festgestellt, dass Sie auch einen Hintergrund-Service mit einem JobScheduler starten können und keine IllegalStateException erhalten, was nett ist. – DataDino

Verwandte Themen