我应该使用哪种对象进行每5分钟一次的检查计划?

时间:2013-08-06 18:04:59

标签: android

我即将创建一个小程序,每5分钟执行一次小任务。 然后程序可以“停止”并等待花费5分钟并执行相同的小任务。

我将此程序称为“服务”

我应该能够通过另一个应用程序(或者它可以是相同的吗?)与程序进行通信(可以通过设置,如果可能,或直接与服务对话),它有一个小的UI来设置一些小活动的设置。

现在我已经阅读了这些结构,我不确定使用哪一个:

  1. 服务
  2. IntentService
  3. AlarmManager
  4. 处理程序
  5. 你可以照亮一个人使用吗?

    我可以想象我对这个目标的描述有点难以理解。最好的比较它我认为是Windows PC上的图标托盘:它是一个程序/服务,它自动启动并做一些事情(在我的情况下,它定期做事情),你可以与它进行一些互动单击图标。所以我的程序必须在后台运行,但我必须能够与程序通信。

    EDIT 也许更好的例子是:有一个程序/服务可以检查手机附近是否有新的WiFi网络。该服务定期(我猜)检查是否存在新网络。但是,您可以通过设置关闭此行为(我的意思是GUI与服务交互)

3 个答案:

答案 0 :(得分:2)

如果不确切知道您正在执行的任务是什么,我会说您需要使用AlarmManager来管理任务的时间安排,IntentService自己运行任务。

好像您只是希望用户能够在服务上设置首选项?您可以使用Activity,使用您的服务可以读取的SharedPreferences保存设置。

答案 1 :(得分:1)

最好的办法是同时使用AlarmManagerIntentService。这样你就可以每隔5分钟开始发出警报,或者你向意图服务发送任何意图去做任何你想做的事情。

一旦所有任务完成,意图服务将自行停止,因此您不必担心管理它

答案 2 :(得分:1)

以下是这些之间的区别:

服务 - 永久运行(或由于资源而停止运行)。不保持手机清醒。未安排,必须看到某些事件发生或被调用以便工作。

IntentService-运行足够长的时间来执行任务。可以排队几个任务。不保持手机清醒。未安排,但会排队请求。

AlarmManager-必须存在于活动或服务的上下文中。将唤醒手机。按计划运行。

处理程序 - 在事件发生时运行。不会让手机保持清醒状态。可以安排,但因为它不会唤醒手机应该只用于短期延迟。

您需要一个AlarmManager和一个服务。该服务将运行并允许您的警报在某处生存。警报本身将按计划调用,并将唤醒电话以完成任务。