在 android 中定期启动服务

Starting a service at regular intervals in android

我的目标是 运行 在 android 应用程序中每 6 小时执行一次后台服务。 我从阅读中学到的是:我需要使用 alarmManager,设置警报,使用广播接收器接收警报,然后在 onReceive 方法中启动我的服务。

现在,我不想在某个特定时间设置闹钟,因为那时所有应用程序都会同时向服务器发送请求。我该如何解决这个问题?此外,我阅读的大多数教程都在 Activity 的 onCreate 中注册了警报。每次我启动应用程序时,这不会导致多次注册警报吗?哪里做这个比较好。

您使用

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

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

它使用 "time since boot" 作为基础,这正是您上面提到的情况。

也没有多次注册报警,只要提供的PendingIntent相同即可。