Android 使用AlarmManager创建然后取消多个报警集

Android 使用AlarmManager创建然后取消多个报警集,android,alarmmanager,Android,Alarmmanager,我有一个应用程序,允许用户选择一个分钟池。因此,他们可能会选择5、15、30和50分钟。然后,使用以下代码同时为每个报警设置alarmmanager报警(这段代码非常有用): //设置所有报警 对于(int i=0;i

我有一个应用程序,允许用户选择一个分钟池。因此,他们可能会选择5、15、30和50分钟。然后,使用以下代码同时为每个报警设置alarmmanager报警(这段代码非常有用):

//设置所有报警
对于(int i=0;i
我希望用户能够清除所有警报并重新开始,即使在设置它们并点击go之后也是如此。我正在尝试AlarmManager.cancel类,但它不起作用。文件上说,如果该意图与设置报警的意图相同,则会取消报警。因此,我使用这段代码来取消它:

String[] spCANCELS = intent_ids.split(";");

                //Cancel all previous set alarms
                for(int i = 0; i < spCANCELS.length; i++) {
                    try {
                        if(!spCANCELS[i].equals("")) {
                            int time = Integer.valueOf(spCANCELS[i]);
                            Intent intent = new Intent(Hop_Timer.this, Alarm_Receiver.class);
                            intent.putExtra("alarm_message", "Time for your " + spCANCELS[i] + " min addition!");
                            PendingIntent sender = PendingIntent.getBroadcast(Hop_Timer.this, time, intent, PendingIntent.FLAG_ONE_SHOT);
                            AlarmManager am = (AlarmManager) Hop_Timer.this.getSystemService(Context.ALARM_SERVICE);
                            am.cancel(sender);
                        }
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                }
                //All clear!
String[]spCANCELS=intent\u id.split(“;”);
//取消所有以前设置的报警
for(int i=0;i
唉,警报一直在响。我以5秒的间隔放入10个不同的警报进行测试。我让前3个或4个警报关闭,然后点击我的取消按钮,但警报不断出现(当点击中的所有字段清除时,我知道点击侦听器正在工作)


编辑:没关系,我需要在查看语法时多加注意。该行:intent_id+=“intent_id;”;不应该在引号中包含变量intent\u id。

不过,在查看语法时,我需要更加注意。该行:intent_id+=“intent_id;”;不应该在引号中包含变量intent\u id。

您认为这个问题/答案对其他人有用吗?如果没有,我建议删除它。希望使用不同的请求代码来设置多个警报将起作用。类似于使用不同的值,例如唯一id
String[] spCANCELS = intent_ids.split(";");

                //Cancel all previous set alarms
                for(int i = 0; i < spCANCELS.length; i++) {
                    try {
                        if(!spCANCELS[i].equals("")) {
                            int time = Integer.valueOf(spCANCELS[i]);
                            Intent intent = new Intent(Hop_Timer.this, Alarm_Receiver.class);
                            intent.putExtra("alarm_message", "Time for your " + spCANCELS[i] + " min addition!");
                            PendingIntent sender = PendingIntent.getBroadcast(Hop_Timer.this, time, intent, PendingIntent.FLAG_ONE_SHOT);
                            AlarmManager am = (AlarmManager) Hop_Timer.this.getSystemService(Context.ALARM_SERVICE);
                            am.cancel(sender);
                        }
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                }
                //All clear!