1

我知道當設備處於空閒模式時,方法setRequiresDeviceIdle(boolean requiresDeviceIdle)使作業運行。當屏幕開啓(設備不空閒)時設置作業調度程序?

我想要的是相反的,我希望在設備不處於空閒模式時(屏幕打開並且用戶正在使用手機)運行作業,並且我知道setRequiresDeviceIdle(false)不能完成這項工作,因爲說「false」意味着它不是必需的,所以它會在閒置和不閒時運行。

+0

我不認爲'JobScheduler'有一個選項。 – CommonsWare

+1

你究竟想要做什麼? – ianhanniballake

+0

@ianhanniballake我必須製作一個應用程序,它可以在屏幕打開的同時從不同的傳感器收集值並將它們存儲在一個文件中,並且當存在互聯網連接時(屏幕處於開啓狀態的第二個條件),文件將被髮送到服務器。所有這些都必須在backgorund中完成。 – student93

回答

2

這不可能通過JobScheduler。如果您希望在屏幕打開的基礎上觸發行爲,則必須持續運行(最有可能爲foreground service)並以編程方式註冊BroadcastReceiver,監聽ACTION_SCREEN_ON

顯然,這是佔用大量內存,這就是爲什麼它沒有被JobScheduler(不提顯著內存壓力時ACTION_SCREEN_ON已經存在,由於它是冒出來的Android 7.0's light doze的條件之一支持系統的整體健康一個可怕的想法)。

+0

謝謝,所以我必須考慮一種不同的方法,因爲這似乎是電池耗盡。 – student93

相關問題