android - AlarmManager 每 24 小时发出一次通知

标签 android notifications alarmmanager



我正在使用 AlarmManager() 来触发通知。我将其设置为在上午 10:30 触发,并每 24 小时重复一次。

我的代码如下。我昨天测试过,问题是在接下来的 2 小时内重复了大约 4-5 次。我不明白这是什么问题。我只想在早上 10:30 触发它,并仅在 24 小时内重复。

请帮我解决问题。我在应用程序的启动屏幕上调用此代码 onCreate()

我的代码:

Intent myIntent = new Intent(Splash.this, AlarmReceiver.class);

PendingIntent pendingIntent = PendingIntent.getBroadcast(Splash.this,
        0, myIntent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

Calendar firingCal = Calendar.getInstance();
Calendar currentCal = Calendar.getInstance();

firingCal.set(Calendar.HOUR_OF_DAY, 10);
firingCal.set(Calendar.MINUTE, 30);
firingCal.set(Calendar.SECOND, 0);

long intendedTime = firingCal.getTimeInMillis();
long currentTime = currentCal.getTimeInMillis();

if (intendedTime >= currentTime) {
    alarmManager.setRepeating(AlarmManager.RTC, intendedTime,
            AlarmManager.INTERVAL_DAY, pendingIntent);

} else {
    firingCal.add(Calendar.DAY_OF_MONTH, 1);
    intendedTime = firingCal.getTimeInMillis();

    alarmManager.setRepeating(AlarmManager.RTC, intendedTime,
            AlarmManager.INTERVAL_DAY, pendingIntent);
}

最佳答案

您可以使用 CommonsWare cwac-wakeful图书馆。它具有设置闹钟的内置支持。

关于android - AlarmManager 每 24 小时发出一次通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17017395/

相关文章:

android - 在 Google Play 服务中找不到 libproject 31

android - 在 try-catch block 中显示通知

ios - 在 applicationDidBecomeActive 上触发本地通知

java - 闹钟管理器不适用于 Android 中的多个闹钟

dart - 如何使用flutter和alarmManager从后台代码启动ui?

Android:id 从未在任何地方声明但存在?

android - 果冻 bean 运行设备的列表 Activity 错误(SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能为零长度)

android - 安卓移动图像

java - GWT 中的通知消息

java - 如何使用 setExact 设置重复闹钟以及如何取消重复闹钟?