【问题标题】:Set monthly repeating notification in Android在 Android 中设置每月重复通知
【发布时间】:2015-04-29 12:36:11
【问题描述】:

我想在每个月的 8 号设置一个通知。

这就是我所做的:

Intent myIntent = new Intent(remember.this, receiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(remember.this, 0, myIntent, 0);

        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);


        // Set the alarm to start at approximately 8th of 
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_MONTH, 8);


        alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                AlarmManager.INTERVAL_DAY*30, pendingIntent);

但是,我得到的是几分钟内不断收到的通知。这不会消失。

非常感谢您的帮助,因为我真的不知道哪里出了问题。

【问题讨论】:

  • 我将在当前月份设置日期 8 的闹钟,这是过去的日期并会触发闹钟。什么是“这不会消失”?
  • 您已设置 4 月 8 日的闹钟,该闹钟已过,因此闹钟会立即触发。您可以通过打印System.out.println(calendar.getTime()); 进行调试,这将给出Wed Apr 08 18:22:13 IST 2015
  • 'this doesn't go away' == 表示即使用户取消通知,通知仍会弹出。
  • @user4846394 能不能也贴一下取消闹钟的代码

标签: android alarmmanager repeatingalarm


【解决方案1】:

将日历设置为即将到来的本月 8 日。

alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() , pendingIntent);

在receiver.class中

public void onReceive(Context context, Intent intent) {
//do action needed
//invoke alarmManager in mainActivity
// cancel the previous alarm 
// set the new alarm for the next month
}

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多