【发布时间】:2016-09-22 14:03:32
【问题描述】:
我的部分问题是,如何在“牛轧糖”中设置间隔少于 15 分钟的工作,“暴雪”在他的回答中回答了这里:
Job Scheduler not running on Android N
他解释了问题并建议使用以下解决方法:
JobInfo jobInfo;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setMinimumLatency(REFRESH_INTERVAL)
.setExtras(bundle).build();
} else {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setPeriodic(REFRESH_INTERVAL)
.setExtras(bundle).build();
}
但是,使用建议
.setMinimumLatency(REFRESH_INTERVAL)
只需开始一次工作;
但是如何在 android nougat 设备(不使用处理程序或警报管理器)上以大约 30 秒的周期定期获取它?
【问题讨论】:
-
每 30 秒做一次,除非你的应用程序在前台并被用户积极使用,这在用户眼中是不合适的,他们大声抱怨后台应用程序的电池消耗。
-
但是,如果您的用户希望在启动手机时获得最新信息(也许他们现在没有互联网......),则需要可靠的后台服务。还是您想告诉我,这显然是不可能的?那么你就可以这样做,而不用试图教我我知道的事情。
-
“如果您的用户希望在启动手机时获得最新信息”——这不需要每 30 秒工作一次。 “或者你是想告诉我,这显然是不可能的?” -- 没有什么可以可靠地做到这一点,除非您的应用程序处于前台并且正在被积极使用。
-
我还希望它每 20 或 30 秒触发一次,但仅在调试时触发。等待 15 分钟看看你的代码是否有效是个笑话。这肯定应该是 Android 开发者设置中的一个选项吗?
-
等待 15 分钟调试是浪费时间。有调试设置吗?
标签: android job-scheduling android-7.0-nougat