Android - 实现类似Unix cronjob的东西

时间:2010-11-28 16:52:03

标签: android web-services

我想每X分钟执行一次REST API请求来更新我的应用程序使用的数据库。

无论我的应用程序是否正在运行,都应该发生这种情况。这也意味着,如果用户重新启动他们的移动设备,轮询应该立即开始,而无需先运行应用程序。

基本上我想实现这种Unix cronjob的种类

*/5 * * * * /usr/local/bin/update_something.sh

这可以通过Android服务吗?如果是的话,你能给我一些基本的指示吗?

感谢。

3 个答案:

答案 0 :(得分:3)

是的,您可以使用服务,但需要在某个相关时间触发/启动服务。您可以尝试使用AlarmManager等可以每隔x分钟触发一次服务的类。

http://developer.android.com/reference/android/app/AlarmManager.html

编辑 -

要在设备启动时启动服务,您可以使用广播接收器

<action android:name="android.intent.action.BOOT_COMPLETED" />

点击此链接

http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/

答案 1 :(得分:1)

所以,我就是这样做的:

  1. BroadcastReceiver听取可接受的广播Intent,例如Intent.ACTION_BOOT_COMPLETED(您将在清单中声明权限以获得该意图)
  2. BroadcastReceiver收到该意图后,让其调用设置AlarmManager的闹钟设置Service
  3. 在该服务中,设置AlarmManager以便它将意图发送到真实的 Service every five minutes. (I don't know the details about how AlarmManager`工作)
  4. 您可以停止第一项服务 - 您的真实服务将接收AlarmManager发送的意图。

答案 2 :(得分:0)

Android Service将是您要走的路。