0

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

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

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

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

此外,我读过很多页面说 AlarmManager 将“唤醒”设备,但我无法理解这真正意味着什么以及为什么它在服务中有所不同。这是否意味着如果手机关闭,它会打开它或者它会打开屏幕?

我只需要手机在开机时在后台执行任务,不需要它来打开屏幕或给设备供电。

4

1 回答 1

1

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

这不是一个“或”。这是一个“和”。您将需要使用AlarmManager来触发要由Service.

我已经阅读了很多页面说 AlarmManager 将“唤醒”设备,但我无法理解这真正意味着什么

AlarmManager _WAKEUP事件类型(例如ELAPSED_REALTIME_WAKEUP)将把设备从睡眠模式中唤醒。WakefulBroadcastReceiver即使设备通常处于睡眠状态(屏幕和 CPU 处于睡眠状态),它与 和 之类的东西一起IntentService可以安排您定期工作。

我只需要手机在开机时在后台执行任务,不需要它来打开屏幕或给设备供电。

然后您可以使用AlarmManager_WAKEUP警报类型(例如,ELAPSED_REALTIME)。我仍然建议使用WakefulBroadcastReceiverIntentService,以确保设备不会在你正在做的事情中进入睡眠状态,因为这可能会给你的工作带来问题。

于 2014-12-16T22:27:27.673 回答