【问题标题】:Starting a service at regular intervals in android在android中定期启动服务
【发布时间】:2015-03-24 16:53:23
【问题描述】:

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

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

【问题讨论】:

  • AFAIK,PendingIntent 是安排某事的最佳方式。如果要避免同时向服务器发送请求,如何随机生成一个开始时间种子?然后,您可以根据此种子每 6 小时安排一次任务。
  • 生成开始时间种子看起来是个好主意。谢谢!

标签: android android-service alarmmanager android-alarms


【解决方案1】:

你使用

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

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

它使用“自启动以来的时间”作为基础,这正是您上面提到的情况。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2012-10-18
    相关资源
    最近更新 更多