提问人:Youb 提问时间:10/31/2023 更新时间:10/31/2023 访问量:17
Android - 警报管理器和 DST 更改
Android - Alarm Manager and DST changes
问:
我使用闹钟管理器来创建重复闹钟(在特定时间)和精确闹钟(在每天变化的时间)。
当 DST 开始或结束时,会出现此问题:
- 对于我的重复闹钟,例如,它们可以从早上 8 点到早上 7 点,并保持这种状态,直到下一次 DST 更改
- 对于我的确切警报,由于我在每次通知后都会重新安排它们,因此 DST 更改的警报是错误的:10 月 28 日,我在早上 7 点 (GMT+2) 收到警报,当通知触发时,我不得不重新安排第二天的闹钟,即 29 日早上 6 点(GMT + 1)。但是由于我在手机仍处于 GMT+2 时重新安排了它,因此它不起作用,因为通知是在 29 日早上 7 点触发的。
我知道我在警报方法中使用的值(以毫秒为单位)是 UTC,那么我该如何处理这些更改(在重复和精确警报中)?
我创建了一个 BroadcastReceiver,但我不认为它一直触发,也没有看到它因 DST 更改而触发。
这是接收器:
<receiver
android:name=".TimeChangeReceiver" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.DATE_CHANGED" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
</intent-filter>
</receiver>
public class TimeChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
setAllAlarms(context);
}
}
答: 暂无答案
评论