2017-02-24 1 views
0

Der JobInfo.Builder hat eine Methode, um den Leerlaufzustand des Geräts einzustellen, aber ich bin verwirrt, was es genau zu sagen versucht.Wie kann ein Job mit JobScheduler nur geplant werden, wenn das Gerät nicht im Ruhezustand ist (nicht einmal im Wartungsfenster)?

setRequiresDeviceIdle (boolean requiresDeviceIdle) 

Specify that to run, the job needs the device to be in idle mode. This defaults to false. 

Idle mode is a loose definition provided by the system, which means that the device is not in use, 
and has not been in use for some time. As such, it is a good time to perform resource heavy jobs. 
Bear in mind that battery usage will still be attributed to your application, and surfaced to the user in battery stats. 

Nun ist die Beschreibung für die Boolesche lautet wie folgt:

requiresDeviceIdle boolean: Whether or not the device need be within an idle maintenance window. 

Ich brauche im Grunde um den Job zu feuern, wenn das Gerät nicht döst, vorzugsweise nicht einmal im Wartungsfenster. Der Zweck des Jobs ist das Herunterladen von Daten aus einem Netzwerk.

Wird die Einstellung false bewirkt, dass sie ausgeführt wird, wenn sich das Gerät nicht im Wartungsfenster befindet? (der tatsächliche Tiefschlafzustand LEERLAUF und der Laufzustand)

wird es auf wahr setzen, weil es nur in den Wartungsfenstern läuft und in keinem anderen Fall?

Antwort

0

Die Einstellung setRequiresDeviceIdle(true) führt den geplanten Job im Wartungsfenster des Gerätedösvorgangs aus.

Ein Wartungsfenster ist eine Zeit der Dösen (Ruhezustand), in dem alle akkumulierten Jobs eine Chance gegeben werden für einen bestimmten Zeitraum zu laufen und dann geht das Gerät wieder und dann das Wartungsfenster Zeit nach einiger Zeit begann dösen und der Zyklus wird wiederholt. Wenn Sie also true auf setRequiresDeviceIdle() setzen, wird Ihr Job nur in diesen Wartungsfenstern ausgeführt.

enter image description here

Also, wenn Sie Ihren Job jederzeit ausgeführt werden soll (auch wenn der Benutzer das Gerät verwendet) eingestellt dann setRequiresDeviceIdle()-false

+0

ich es besonders werden soll verwendet werden, wenn das Gerät aktiv ist ... und nur wenn es aktiv ist. – Kushan

+0

Aber was ist das Problem mit dem Job, der im Wartungsfenster läuft? – arjun

+0

Problem ist, wenn ich die verdammte Flagge wahr, es wird nur im Wartungsfenster laufen und wenn zu falsch nur im aktiven Zustand ... Das ist, warum kein MW. Schlage etwas vor, wenn du eine Alternative hast – Kushan

Verwandte Themen