我的问题很简单,但可能会有一个复杂的答案。
我正在创建一个应用程序来检查在线mysql数据库(通过网站上的php脚本)以获取新的更新。有时这些更新会告诉应用程序它必须从FTP服务器下载。
应用程序应该在启动时启动并每15分钟检查一次更新。
我已经在网上阅读了我应该使用服务或AlarmManager,但我不知道哪一个更好。
另外,我已经阅读了很多页面,说明AlarmManager将会唤醒"唤醒"该设备,但我没有理解这真正意味着什么以及为什么它在服务中有所不同。这是否意味着如果手机关闭,它会打开它还是会打开屏幕?
我只需要手机即可在后台执行任务,我不需要它来打开屏幕或启动设备。
答案 0 :(得分:1)
我在网上看过我应该使用服务或AlarmManager,但我不知道哪一个更好。
这不是“或”。这是一个“和”。您需要使用AlarmManager
来触发由Service
完成的工作。
我已经阅读了很多页面,说AlarmManager会“唤醒”设备,但我无法理解这是什么意思
AlarmManager
_WAKEUP
事件类型(例如ELAPSED_REALTIME_WAKEUP
)会将设备唤醒进入睡眠模式。与WakefulBroadcastReceiver
和IntentService
类似,可以安排您定期进行工作,即使设备通常处于睡眠状态(屏幕和CPU处于睡眠状态)。
我只需要手机即可在后台执行任务,我不需要它来打开屏幕或启动设备。
然后,您可以将AlarmManager
与非_WAKEUP
警报类型(例如ELAPSED_REALTIME
)一起使用。我仍然建议使用WakefulBroadcastReceiver
和IntentService
,以确保设备在您正在进行的操作过程中不会入睡,因为这可能会导致您的工作出现问题。