通知显示的不是确切的时间

时间:2014-12-09 14:59:21

标签: android android-notifications

我知道这个主题解释得很好,并且有很多教程。但也许我在android上太新了解我的错误。

我需要实现一组提醒的支持。并且通知应该在每个星期一下午15点准确显示。我在这个网站上检查了很多教程和类似的问题,但无论如何通知显示,不知何故,随机。

如何测试实施:

  1. 当前时间是14:55
  2. 我在周一15:00设置提醒
  3. 显示SAVE通知后。
  4. 因为(例如)我在20秒内设定了重复周期,所以这个通知一次又一次地显示,延迟为20秒。但目前时间仍在14:55至15:00之间。
  5. 我的任务是在15:00运行通知或稍后运行通知。但不是之前。

    设置重复通知

    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, NotifyService.class);
    PendingIntent pendingIntent = PendingIntent.getService(context, (int) reminder.id, intent, 0);
    
    final Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.set(Calendar.DAY_OF_WEEK, 2);
    calendar.set(Calendar.HOUR_OF_DAY, reminder.time.hour);
    calendar.set(Calendar.MINUTE, reminder.time.minute);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);
    am.setRepeating(AlarmManager.RTC_WAKEUP,
            Calendar.getInstance().getTimeInMillis(), 20000, pendingIntent);
    

    顺便说一句

    我的min SDK版本是7,所以我不能使用像 setExact()

    这样的方法 测试设备上的Android版本是4.4.2

    由于

1 个答案:

答案 0 :(得分:1)

设置闹钟时,请使用Calendar.getInstance().getTimeInMillis()而不是calendar.getTimeInMillis()进行设置。简单的错误;)。

基本上将闹钟设置为' now'每次都忽略你的日历对象。