【问题标题】:Alarm fires on specific days every week每周在特定日期触发警报
【发布时间】:2014-02-14 22:00:21
【问题描述】:

我正在制作一个应用程序,让用户可以选择日期并在这些天的特定时间启动警报。

以我的问题为例,我希望我的闹钟每周五 12:30 响起 问题是即使我在同一天,它也不会发出警报这是我的代码

    cals = Calendar.getInstance();
    int days = Calendar.FRIDAY + (7 - cals.get(Calendar.DAY_OF_WEEK)); // how many days until Sunday
        cals.add(Calendar.DATE, days);
    cals.set(Calendar.DAY_OF_WEEK,6);                           
    cals.set(Calendar.HOUR_OF_DAY, 12);
    cals.set(Calendar.MINUTE, 30);
    cals.set(Calendar.SECOND, 0);
    cals.set(Calendar.MILLISECOND, 0);
    alarm.SetAlarm(getApplicationContext(), 10,"Start", cals.getTimeInMillis());



public void SetAlarm(Context context,int id,String sor,long time)
  {
      AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
      if(sor.equals("Start"))
      {
          Intent i = new Intent(context, MyAppReceiver.class);
          PendingIntent p = PendingIntent.getBroadcast(context, 0, i, 0);        
          am.setRepeating(AlarmManager.RTC_WAKEUP, time, DateUtils.DAY_IN_MILLIS, p);        
      }
}

【问题讨论】:

  • 请查看Calendar day 是否设置正确。
  • 现在检查,设置正确
  • 不确定这是否有帮助,但我最近遇到了关于闹钟和星期几的问题:stackoverflow.com/questions/20204284/…

标签: android date time alarmmanager


【解决方案1】:

您是否在 AndroidManifest.xml 中将您的 MyAppReceiver 注册为 BroadcastReceiver?

【讨论】:

  • 是的,我刚刚发现所有工作日都由同一个变量“cals”设置?有什么办法可以避免吗?
  • 在这里使用 cals 来设置所有内容没有任何问题...我刚刚尝试了您发布的代码,它没有问题(前提是我在 AndroidManifest.xml 中设置了广播接收器)并且我删除了'cals.add(Calendar.DATE, days);' 行这当然指向下周
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 1970-01-01
相关资源
最近更新 更多