没有唤醒的Android AlarmManager服务

时间:2011-12-30 20:30:16

标签: android service alarmmanager

我正在编写一项Android服务,每天下午5点检查一个网站。如果满足某些条件,它将提出通知,如果没有,则不会发生任何事情。

首先,我尝试将其作为后台服务实现,该服务将启动一个睡眠时间为下一个下午5点的毫秒数的线程,然后进行检查并在需要时发出通知,然后再次进入睡眠状态。 如果我在服务启动时接近下午5点,这是有效的,但不是其他情况,我在谷歌上搜索Android可以随时终止服务,所以我想这不是推荐的解决方案。

我发现的建议似乎都指向了AlarmManager,这也是我在实现上述解决方案之前首先看到的,但它有一个缺点。如果我使用RTC作为类型,那么在用户开始使用手机之前不会执行检查,我希望即使空闲也可以完成。但是,我不想使用RTC_WAKEUP,因为我不希望屏幕打开,除非我得出结论通知应该被提出。

我想这应该是可行的,因为它正是任何电子邮件应用程序所做的。如果这是电子邮件服务检查服务器新消息的频率,则屏幕不会每分钟都出现。

RTC_WAKEUP是否真的打开了屏幕?如果是,是否有其他首选技术来实现上述方案?

1 个答案:

答案 0 :(得分:2)

  

但是,我不想使用RTC_WAKEUP,因为我不希望屏幕打开,除非我得出结论通知应该被提出。

RTC_WAKEUP无法开启屏幕。

  

RTC_WAKEUP是否真的打开了屏幕?

没有。在这里,它只会“唤醒”CPU。