1

我刚刚开始将我的 iOS 应用程序转换为 Android。但是我遇到了以下问题。

我创建了多个类,因此弹出警报。但问题是警报每 5/10 秒弹出一次,而不是给定时间。我知道这与以下代码有关:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 5000, 10000, pendingIntent);

但最奇怪的是,该代码上面的给定时间不会触发任何事情:(否则我可能刚刚删除了最后一行代码)

private void setRecurringAlarm(Context context) {
    Calendar updateTime = Calendar.getInstance();
    updateTime.set(Calendar.HOUR_OF_DAY, 17);
    updateTime.set(Calendar.MINUTE, 18);

    Intent open = new Intent(this, AlarmReceiver.class);
    open.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, open, PendingIntent.FLAG_CANCEL_CURRENT);
    AlarmManager alarmManager = (AlarmManager) getSystemService(MyApp.ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 5000, 10000, pendingIntent);

该代码有什么问题,因为警报不会在 17:18 弹出,而是每次在 5 或 10 秒后弹出。我为显示通知而创建的服务未在 17:18 开始显示消息。这与我的时区(阿姆斯特丹时间)有关吗?

4

1 回答 1

0

我认为您为 .setRepeating 传递了错误的值。看看文档

在我看来你在说:从现在开始 5 秒后第一次广播,然后每 10 秒重复一次

于 2012-10-18T16:20:27.183 回答