【问题标题】:AlarmManager going off before Set TimeAlarmManager 在设置时间之前关闭
【发布时间】:2013-05-03 01:42:09
【问题描述】:

我的 AlarmManger 有问题:

以下正确添加了一天(因为已经过了 9:25 的时间)输出是正确的,但 AlarmManager 在几秒钟内调用了广播。这是相关的片段。有什么想法吗?

Calendar cal = Calendar.getInstance();
    cal.set(Calendar.HOUR_OF_DAY, 21);
    cal.set(Calendar.MINUTE, 25);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);


    Intent intent = new Intent(this, NotificationReceiver.class);
    NotificationReceiver instance = new NotificationReceiver();
    intent.setAction(instance.NOTIFICATION_SEND);
    intent.putExtra("TYPE",instance.NOTIFICATION_TYPE_PROGRESS);
    intent.putExtra("Ticker","Waiting for arrival.");
    intent.putExtra("ID",1);
    intent.putExtra("title","Check-In");
    intent.putExtra("message","A message");

    if(System.currentTimeMillis()>cal.getTimeInMillis()){
        if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY||cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY||cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY){
            cal.add(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
            Log.d("ALARMS","Set for monday.");
        }
        else{
            cal.add(Calendar.DATE,1);
            Log.d("ALARMS","Set for tomorrow. "+cal.get(Calendar.DAY_OF_MONTH));
        }
    }
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 24332, intent, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),4000,pendingIntent);

【问题讨论】:

    标签: android alarmmanager repeatingalarm


    【解决方案1】:

    已解决:

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 24, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多