【发布时间】:2014-07-10 11:07:00
【问题描述】:
我有一个 WakefulIntentService,它基本上以某个固定的时间间隔 ping 服务器以检查一些数据。
WakefulIntentService.scheduleAlarms(new PingWakefulListener(), this, false);
如果数据可用,我会取消警报
WakefulIntentService.cancelAlarms(getApplicationContext());
处理数据。
处理完成后,我会重新安排警报时间
WakefulIntentService.scheduleAlarms(new PingWakefulListener(), AcceptOrder.this, false);
我观察到的是,当 force(第三个参数)为 false 时,不会再次安排警报。因此,服务器不再 ping 通。
但是,如果我将force 设置为true,两个服务会同时运行。
安排和取消闹钟的正确方法是什么?
我发现,上次报警后经过的时间小于getMaxAge。所以警报没有再次安排。但是,取消警报应该可以清除它。
【问题讨论】: