用于数据库和FTP连接的AlarmManager与服务。哪个以及如何使用?

时间:2014-12-16 22:23:40

标签: android service alarmmanager wakelock wakeup

我的问题很简单,但可能会有一个复杂的答案。

我正在创建一个应用程序来检查在线mysql数据库(通过网站上的php脚本)以获取新的更新。有时这些更新会告诉应用程序它必须从FTP服务器下载。

应用程序应该在启动时启动并每15分钟检查一次更新。

我已经在网上阅读了我应该使用服务或AlarmManager,但我不知道哪一个更好。

另外,我已经阅读了很多页面,说明AlarmManager将会唤醒"唤醒"该设备,但我没有理解这真正意味着什么以及为什么它在服务中有所不同。这是否意味着如果手机关闭,它会打开它还是会打开屏幕?

我只需要手机即可在后台执行任务,我不需要它来打开屏幕或启动设备。

1 个答案:

答案 0 :(得分:1)

  

我在网上看过我应该使用服务或AlarmManager,但我不知道哪一个更好。

这不是“或”。这是一个“和”。您需要使用AlarmManager来触发由Service完成的工作。

  

我已经阅读了很多页面,说AlarmManager会“唤醒”设备,但我无法理解这是什么意思

AlarmManager _WAKEUP事件类型(例如ELAPSED_REALTIME_WAKEUP)会将设备唤醒进入睡眠模式。与WakefulBroadcastReceiverIntentService类似,可以安排您定期进行工作,即使设备通常处于睡眠状态(屏幕和CPU处于睡眠状态)。

  

我只需要手机即可在后台执行任务,我不需要它来打开屏幕或启动设备。

然后,您可以将AlarmManager与非_WAKEUP警报类型(例如ELAPSED_REALTIME)一起使用。我仍然建议使用WakefulBroadcastReceiverIntentService,以确保设备在您正在进行的操作过程中不会入睡,因为这可能会导致您的工作出现问题。