我做的闹钟程序,在程序启动的时候通过加载配置文件 生成一个list列表,然后遍历列表来设定了闹钟时间,当第一个时间到了以后,我点再过五分钟再响,本来应该过五分钟再响的,但他会继续遍历,那个闹钟的alert窗口又连续出现了好多次 ,不知道怎么回事?

解决方案 »

  1.   

    起始页面加载文件,获得闹钟的信息,如时间等。下面是方法:
    public void setAlarm(){
    DataControl dataControl=DataControl.getInstance();
    for(int i = 0; i < patientList.size(); i++){
    String dataId=patientList.get(i).getPatientID();
    String  userName=patientList.get(i).getPatientName();//dataId=patientId
    dataControl.setCurrentDataId(dataId);
    DataObject oneData=dataControl.getCurrentDataObject();
    if(oneData!=null){
    ArrayList<Reminder> reminderList =oneData.getReminderList();
    //Intent alarmService=null;
    Intent alarmService = new Intent(MainActivity.this,AlarmService.class);
    for(int j=0;j<reminderList.size();j++){
    Reminder reminder=reminderList.get(j);
    String reminderTime=reminder.getReminderTime();
    String hourTime=reminderTime.substring(0,reminderTime.indexOf(":"));
    String minute=reminderTime.substring(reminderTime.lastIndexOf(":")+1).substring(0, 2);
    String minuteTime="";
    if(minute.startsWith("0")){
    minuteTime=minute.substring(1);
    }else{
    minuteTime=minute;
    }  

    String reminderId=reminder.getReminderId();

            alarmService.putExtra("hourOfDay", hourTime);
            alarmService.putExtra("minute",minuteTime);
            alarmService.putExtra("message",reminder.getReminderType());
            alarmService.putExtra("reminderId",reminderId);
    String patientId=dataId;
    WorkflowControl workflowControl = WorkflowControl.getInstance();
    workflowControl.seekWorkflow(patientId);
            alarmService.putExtra("userName",userName);
            startService(alarmService); 
            //stopService(alarmService);   
    }


       
            }

    }后面就是service和BroadcastReceiver了