GCMNetorkManager PeriodicTask 以 1 分钟为周期工作,但不以 2 分钟为周期
GCMNetorkManager PeriodicTask works with 1 minute period, but don't with 2
我已经实现了 GCMNetworkManager PeriodicTask
我已根据手册仔细检查了所有步骤,已阅读 GCMNetMan 的所有文档
设置一分钟的周期 - 效果很好。设置 2 或 5 分钟 - 没有任何效果。
Kotlin 代码:
class ScheduleService: GcmTaskService() {
private val TAG = "ScheduleService"
override fun onInitializeTasks() {
Log.wtf(TAG, "onInitializeTasks")
val gcmMan = GcmNetworkManager.getInstance(this)
gcmMan.schedule(PeriodicTask.Builder()
.setPeriod(120000L)
.setFlex(60000L)
.setPersisted(true)
.setService(ScheduleService::class.java)
.setTag(GPSControl.SCHEDULED)
.setUpdateCurrent(true)
.build())
}
override fun onRunTask(taskParams: TaskParams): Int {
Log.wtf(TAG, "onRunTask: ${taskParams.tag}")
GPSControl.trigger(applicationContext, taskParams.tag)
if (taskParams.tag == GPSControl.SCHEDULED)
return GcmNetworkManager.RESULT_RESCHEDULE
else return GcmNetworkManager.RESULT_SUCCESS
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return super.onStartCommand(intent, flags, startId)
}
}
我是个白痴。 setPeriod()
和 setFlex()
在 SECONDS
后接受参数
我已经实现了 GCMNetworkManager PeriodicTask
我已根据手册仔细检查了所有步骤,已阅读 GCMNetMan 的所有文档
设置一分钟的周期 - 效果很好。设置 2 或 5 分钟 - 没有任何效果。
Kotlin 代码:
class ScheduleService: GcmTaskService() {
private val TAG = "ScheduleService"
override fun onInitializeTasks() {
Log.wtf(TAG, "onInitializeTasks")
val gcmMan = GcmNetworkManager.getInstance(this)
gcmMan.schedule(PeriodicTask.Builder()
.setPeriod(120000L)
.setFlex(60000L)
.setPersisted(true)
.setService(ScheduleService::class.java)
.setTag(GPSControl.SCHEDULED)
.setUpdateCurrent(true)
.build())
}
override fun onRunTask(taskParams: TaskParams): Int {
Log.wtf(TAG, "onRunTask: ${taskParams.tag}")
GPSControl.trigger(applicationContext, taskParams.tag)
if (taskParams.tag == GPSControl.SCHEDULED)
return GcmNetworkManager.RESULT_RESCHEDULE
else return GcmNetworkManager.RESULT_SUCCESS
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return super.onStartCommand(intent, flags, startId)
}
}
我是个白痴。 setPeriod()
和 setFlex()
在 SECONDS