Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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
Android 2 AlarmManager在事件上发生冲突_Android - Fatal编程技术网

Android 2 AlarmManager在事件上发生冲突

Android 2 AlarmManager在事件上发生冲突,android,Android,我有一个活动、一个广播接收器和一个服务 该活动将创建2个报警时钟 //Config calendar for StartTime Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month); c.set(Calendar.DAY_OF_MONTH, day); c.set(Calendar

我有一个活动、一个广播接收器和一个服务

该活动将创建2个报警时钟

//Config calendar for StartTime
        Calendar c = Calendar.getInstance();

        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month);
        c.set(Calendar.DAY_OF_MONTH, day);
        c.set(Calendar.HOUR_OF_DAY, hour);
        c.set(Calendar.MINUTE, minute);
        c.set(Calendar.SECOND,0);       

        //Set Alarm for StartTime
        Intent alarmI = new Intent(AddRule.this,AlarmReceiver.class);
        alarmI.putExtra("Stream", "Start");
        pIntent_start = PendingIntent.getBroadcast(this, 0, alarmI, pIntent_start.FLAG_ONE_SHOT);

        AlarmManager aM_start = (AlarmManager)getSystemService(ALARM_SERVICE);
        aM_start.set(aM_start.RTC, c.getTimeInMillis(), pIntent_start);

        //Config calendar for EndTime
        Calendar c1 = Calendar.getInstance();

        c1.set(Calendar.YEAR, year_end);
        c1.set(Calendar.MONTH, month_end);
        c1.set(Calendar.DAY_OF_MONTH, day_end);
        c1.set(Calendar.HOUR_OF_DAY, hour_end);
        c1.set(Calendar.MINUTE, minute_end);
        c1.set(Calendar.SECOND,0);

        //Set Alarm for StartTime
        Intent alarmII = new Intent(AddRule.this,AlarmReceiver.class);
        alarmII.putExtra("Stream", "End");
        pIntent_end = PendingIntent.getBroadcast(this, 1, alarmII, pIntent_end.FLAG_ONE_SHOT);

        AlarmManager aM_end = (AlarmManager)getSystemService(ALARM_SERVICE);
        aM_end.set(aM_end.RTC, c1.getTimeInMillis(), pIntent_end);
1个alarmclock应表示事件开始,1个alarmclock表示事件结束

broadcastreceiver的唯一操作是将意图发送到服务

在我的服务课上,我看一下额外的目的是开始还是结束,然后决定做什么

if(intent.getStringExtra("Stream").equalsIgnoreCase("Start"))
    {
        //do something
    }
    else if (intent.getStringExtra("Stream").equalsIgnoreCase("End"));
    {
        //do something
    }
我发现的问题是,当到达时间并且服务被激活时,启动和结束信号都被触发,因此启动时应该发生的动作只有很短的时间,直到结束信号被触发。 在应触发信号的结束时间,应用程序因一次触发而崩溃。 我已经检查了时间和所有的东西,但没关系:/我不觉得有问题,有人能帮我吗

对不起,我说的是英语

莫里茨