2017-12-26 158 views
6

Harmonogram zadań nie uruchamia się, gdy bateria spadnie poniżej 15%. Czy istnieje sposób na obejście problemu z akumulatorem. Urządzenie może być używane tylko dla określonej aplikacji i nic więcej nie będzie działać.Harmonogram zadań nie jest uruchamiany czasami

Urządzenie to Lenovo Tab 3 A7-10 i działające na systemie Android Lollipop (5.0.1).

jobScheduler.schedule(new JobInfo.Builder(MY_JOB_ID, 
       new ComponentName(applicationContext, MyJob.class)) 
       .setPeriodic(syncInterval) 
       .build()); 

Dzięki

Odpowiedz

0

Zgodnie Android Developers Documentation,

JobInfo.isRequireBatteryNotLow() 

stwierdza:

Praca nie działa, gdy poziom naładowania baterii jest na poziomie lub poniżej progu Krytyczny; jest to poziom, na którym urządzenie pokazuje okno dialogowe System ostrzegania o niskim stanie akumulatora.

Również

setRequiresBetteryNotLow(boolean batteryNotLow) 

here stwierdza, że:

określić, że do uruchomienia tego zadania, poziom naładowania baterii urządzenia nie musi być niska. Ta wartość domyślna to false. Jeśli true, zadanie zostanie uruchomione tylko wtedy, gdy poziom naładowania baterii nie jest niski, co jest generalnie punktem, w którym użytkownik otrzymuje ostrzeżenie "niskiego poziomu baterii".

Niestety, poniżej API 26 jest mniejszy dostęp z JobScheduler i jak można z niego korzystać. Prawdopodobnie możesz nie być w stanie użyć metod, o których wspomniałem, poniżej interfejsu API 26. Możesz znaleźć tutaj dowód pomocniczy: Android JobScheduler

Firebase JobDispatcher służy jako warstwa zgodności z JobScheduler dla aplikacji kierowanych na wersje Androida niższej niż 5.0 (poziom API 21). Nie jestem pewien, czy pozwoliłoby ci to osiągnąć pożądany scenariusz, ale popatrz na niego.

Dzięki @ianhanniball za poprawę odpowiedzi i zwrócenie na to uwagi.

+0

To API dodano API 26 i nie ma zastosowania do Urządzenie API 21 niestety. – ianhanniballake

+0

Dokumentacja dla programistów Androida @ianhanniballake wyjaśnia tutaj: https://developer.android.com/topic/performance/scheduling.html#js –

+0

@ianhanniballake Czytałem również dokumentację dla tego samego. Czy jest jakiś sposób na to samo w API 21? –

0

Nawiązując do Android Framework JobScheduler

JobInfo.isRequireBatteryNotLow() 

Praca nie działa, gdy poziom naładowania baterii jest na poziomie lub poniżej progu Krytyczny; jest to poziom, na którym urządzenie pokazuje okno dialogowe System ostrzegania o niskim stanie akumulatora.

Firebase JobDispatcher

Firebase JobDispatcherMinimalna API 9Wymaga Google PlayTak JobScheduler klienta ponowić strategie Tak

Powiązane problemy