【问题标题】:Alarm manager for Interval Day - I want to cancel past alarms间隔日的警报管理器 - 我想取消过去的警报
【发布时间】:2019-07-30 07:50:02
【问题描述】:

每天早上 8 点到晚上 8 点应该重复闹钟。如何设置该闹钟不应该在周日工作,过去的闹钟也不应该工作,即如果我在周三直接打开应用程序,周一至周二的所有闹钟都会立即在屏幕上提示

int hour[]={8,9,10,11,12,13,14,15,16,17,18,19,20};

AlarmManager 警报管理器;

  for (int i=0;i<hour.length;i++)
  {
      alarmManager= (AlarmManager) getSystemService(ALARM_SERVICE);

      Intent intent = new Intent(getApplicationContext(), ReminderActivity.class);
      intent.setAction(Intent.ACTION_MAIN);
      intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

      PendingIntent  pIntent = PendingIntent.getService(this, hour[i], intent, PendingIntent.FLAG_UPDATE_CURRENT);
      Calendar calendar = Calendar.getInstance();
      calendar.set(Calendar.MILLISECOND, 0);
      calendar.set(Calendar.SECOND, 0);
      calendar.set(Calendar.MINUTE, 0);
      calendar.set(Calendar.HOUR_OF_DAY, hour[i]);

      Log.d("sdf","dsgd g"+calendar.getTimeInMillis());

      alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent);

【问题讨论】:

    标签: android alarmmanager android-alarms repeatingalarm


    【解决方案1】:

    对于您的周日问题,您可能只需要询问星期几是否不是数字 7(java 从 1 开始计数)。所以在你的警报管理器中:

    Calendar c = Calendar.getInstance();
    c.setTime(yourDate);
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
    if(dayOfWeek != Calendar.SUNDAY){
     //fire alarm
    }else{
     return
    }
    

    同样对于第二个问题:你应该问那个时间是否在当前时间之后,设置闹钟。

      Calendar calendar = Calendar.getInstance();
      calendar.set(Calendar.MILLISECOND, 0);
      calendar.set(Calendar.SECOND, 0);
      calendar.set(Calendar.MINUTE, 0);
      calendar.set(Calendar.HOUR_OF_DAY, hour[i]);
    
      Calendar today = Calendar.getInstance();
    

    要检查您的时间是否晚于当前时间,请询问if(calendar.isAfter(today)){//set alarm}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多