如何在android中设置多个警报

时间:2014-05-01 09:12:51

标签: android alarmmanager android-pendingintent

我有一个列表视图,其中有一些切换按钮(共5个)      该应用程序的功能是为用户点击的那些日期设置alrms      在切换按钮检查我发送数据,并能够获取数据但不知道下一步该做什么我能够为单个按钮发出警报响铃但不知道如何设置多个日期用户也可以删除警报      我在这里放代码      pIndex是列表视图中按钮的索引

Intent intent = new Intent();
                                 intent.setAction("action_d");
                                 intent.putExtra("day",day);
                                 intent.putExtra("month",month);
                                 intent.putExtra("state",state);
                                 intent.putExtra("count",mCount);
                                 Log.v("pending intent",""+pIndex);
                                 PendingIntent pendingIntent = PendingIntent.getBroadcast(context, pIndex, intent, 1);
                                 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
                                              alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),pendingIntent );


    //on reciving class
    final String action = arg1.getAction();
    if ("action_d".equals(action)) {
            // do function d

                String day = arg1.getExtras().getString("day");
                int cmonth =arg1.getExtras().getInt("month");
                int state =arg1.getExtras().getInt("state");
                int count =arg1.getExtras().getInt("count");

                if(cmonth == month ){
                    Log.v("setting alarm for ","action d recived"+day);
                 if(day.equals(cDate))
                    {

                     vibrator.vibrate(2000);
                         notification.setLatestEventInfo(arg0, contentTitle, contentText, contentIntent);
                         //notification.defaults |= Notification.DEFAULT_SOUND;
                         notofManager.notify(NOTIF_ID,notification);

                         Intent mIntent = new Intent(arg0,DialogActivity.class); //Same as above two lines
                              mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                              arg0.startActivity(mIntent);
                    }
                }



        }

1 个答案:

答案 0 :(得分:2)

您可以根据需要设置任意数量的闹钟,就像现在一样。您只需确保传递给PendingIntent的每个AlarmManager都是唯一的。不幸的是,在尝试确定Intent s的唯一性时,PendingIntent中的“额外内容”会被忽略。因此,您需要在requestCode中提供唯一的Intent或唯一的操作,以保证每个PendingIntent的唯一性。