Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置3个不同的警报_Java_Android_Sqlite_Alarmmanager_Alarm - Fatal编程技术网

Java 设置3个不同的警报

Java 设置3个不同的警报,java,android,sqlite,alarmmanager,alarm,Java,Android,Sqlite,Alarmmanager,Alarm,我知道有很多关于这个话题的问题,但是没有一个能帮助我做我想做的事情,所以我希望你能帮助我。 我想设置在一天中不同时间触发的3个警报,让我们分别在上午9点、下午1点和下午6点。关于时间的信息保存在sqlite数据库中 我逐行阅读我的数据库,并为每小时设置闹钟。对于id,我只使用了一个数字 这是我正在使用的代码。它只在我设置一个警报时起作用,但如果我尝试设置更多警报,则没有一个警报被设置 private void setAlarm() throws ParseException { DB

我知道有很多关于这个话题的问题,但是没有一个能帮助我做我想做的事情,所以我希望你能帮助我。 我想设置在一天中不同时间触发的3个警报,让我们分别在上午9点、下午1点和下午6点。关于时间的信息保存在sqlite数据库中

我逐行阅读我的数据库,并为每小时设置闹钟。对于id,我只使用了一个数字

这是我正在使用的代码。它只在我设置一个警报时起作用,但如果我尝试设置更多警报,则没有一个警报被设置

private void setAlarm() throws ParseException {
      DBHelper helper = new DBHelper(Main3Activity.this);
      Cursor cursor = helper.getQueryDB();
      cursor.moveToPosition(-1);
      int i = 1;

      AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
      Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);

      while (cursor.moveToNext()) {
            final String name = cursor.getString(1);
            final String time = cursor.getString(2);

            PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), i, intent, 0);

            Calendar t = parseTime(time);

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


            i++;
      }
}
public Calendar parseTime (String t) throws ParseException {
       SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy");
       Calendar cal = Calendar.getInstance();
       cal.setTime(sdf.parse(t));
       return cal;
}

你只需要设置一个警报,当它触发时设置下一个。

代码很好,我忘了把接收器放在android清单上。
我的错

你能进一步发展你的答案吗?我不完全明白你的意思。