0
這是我建立我的工作:的jobscheduler工作被取消
val builder = JobInfo.Builder(1, ComponentName(this,
PullDataJob::class.java))
.setPeriodic(1000L * 60 * 60) // one hour
.setRequiredNetworkType(NETWORK_TYPE_ANY)
.setPersisted(true)
jobScheduler.schedule(builder.build())
我的測試程序:
- 打開我的應用程序
- 使用
adb shell dumpsys jobscheduler
獲得活動作業名單。我的工作可以在列表中看到。 - 通過從最近的列表中滑動我的應用程序來殺死進程。
- 使用相同的命令,並發現我的工作已經結束。
jobScheduler.allPendingJobs.size
變爲0.- 重新打開我的應用程序。
- 我的工作仍然不存在於活動工作清單中,除非我再次手動安排(即使我使用
setPersisted(true)
)。
我的測試環境:
氫OS,安卓7.1.1,targetSdkVersion:26
那是預期的行爲?如果我希望作業能夠定期運行,即使應用程序被殺,我該怎麼辦?
是的,這是理想的行爲。動作編號3)爲用戶提供永久停止使用CPU的應用程序的權力。 – Henry
嘗試此鏈接可能會幫助你https://stackoverflow.com/questions/38410309/jobscheduler-setrequirednetworktypejobinfo-network-type-any-not-working –
@AmjadKhan這兩個問題是如何相互關聯的... – Null