【问题标题】:AlarmManager, repeating alarms and daylight savingAlarmManager,重复警报和夏令时
【发布时间】:2014-07-25 09:47:54
【问题描述】:

我安排了一个闹钟,每天在同一时间触发。我将其设置为重复警报(使用AlarmManager.setRepeating()),它每24 * 60 * 60 * 1000 毫秒(24 小时)触发一次。我不知道我是否必须控制夏令时更改,或者它是自动的。

我对此进行了测试:

  1. 我将移动设备时间更改为夏令时更改前一分钟 (1:59)(更改时间为凌晨 2 点至凌晨 3 点)。
  2. 我给3:01安排了一个闹钟。
  3. 我等了 2 分钟,警报响起。

但是如果我设置这个每天运行的警报,例如,在夏令时更改前 2 天......它会在夏令时更改后按预期运行吗?还是我需要控制它?

【问题讨论】:

    标签: android alarmmanager android-alarms


    【解决方案1】:

    您需要添加一个 TIMEZONE_CHANGED 接收器并重新安排您的闹钟(停止和重新启动)

    <receiver android:name="RecevierTimeZoneChange">
      <intent-filter>
        <action android:name="android.intent.action.TIMEZONE_CHANGED"></action>
      </intent-filter>
    </receiver>
    

    【讨论】:

    • 感谢您的回答道奇。我将进行测试,如果可行,我会将您的答案标记为已接受! :D
    • 我测试过了。当我手动更改时区时它可以工作,但是当它由于夏令时更改而自动更改时,它不会触发:(所以我无法重新安排我的闹钟:'(
    • 嗯,那很糟糕......那我不知道。对不起:(
    • 不应该是ACTION_TIMEZONE_CHANGED吗? developer.android.com/reference/android/content/…
    • 不,ACTION_TIMEZONE_CHANGED 是 Intent 中的常量(您可以在 Intent.ACTION_TIMEZONE_CHANGED 的代码中使用它)。该常量的实际内容是 android.intent.action.TIMEZONE_CHANGED,正如您在链接的文档的“常量值:”行中看到的那样。
    【解决方案2】:

    您还需要使用 TIME_TICK 意图。 在 Android 上的每次更改时间都会触发此意图。 也由网络自动完成未成年人更正。

    【讨论】:

      猜你喜欢
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多