2012-12-03 4 views
-1

Я не понимаю, почему я не могу создать очередь диспетчера аварий. После первого сигнала тревоги остальные следуют в каскаде, не встречающемся раз. Вот код, который будет вызываться при нажмите кнопку «Пуск»:Тревога в Android-сигнале не соответствует времени

final AlarmManager[] alarmManager=new AlarmManager[50];  
Integer i =0; 
final Calendar calendar = Calendar.getInstance(); 
public void onClick(View arg0) { 

      Intent myIntent = new Intent(AndroidAlarmSMS.this, 
             MyAlarmService.class); 

      pendingIntent = PendingIntent.getService(AndroidAlarmSMS.this, i, 
                myIntent, 0); 

      thatDay.set(dataPick.getYear(), dataPick.getMonth(),dataPick.getDayOfMonth(), timePicker1.getCurrentHour(), timePicker1.getCurrentMinute()); 

      calendar.setTimeInMillis(System.currentTimeMillis()); 

      long diff = (thatDay.getTimeInMillis()- calendar.getTimeInMillis()); 

      int sec = (int) (diff/1000 % 60); 

         calendar.add(Calendar.SECOND,sec);//Sec it's the difference between time selected and now 
      alarmManager[i] = (AlarmManager)getSystemService(ALARM_SERVICE); 
      alarmManager[i].set(AlarmManager.RTC_WAKEUP, 
         calendar.getTimeInMillis(), pendingIntent); 


      i++; 

} 
+2

Как мы можем помочь вам, если вы не покажете нам, как вы работаете с «календарем» или когда вызывается 'onClick()'? – Sam

+0

Я добавил информацию – user1873662

ответ

0

Вы устанавливаете все ваши тревоги происходят в calendar «s время, я предполагаю, что вы имели в виду использовать thatDay:

alarmManager[i].set(AlarmManager.RTC_WAKEUP, thatDay.getTimeInMillis(), pendingIntent); 

у меня есть пара заметок:

  • Существует только один Алара mManager, поэтому alarmManager содержит до 50 копий одного и того же системного сервиса.
  • Ваш индекс i зависит от действий пользователей, у вас может быть меньше или больше чем пятьдесят аварий. Вы должны использовать ArrayList и add().
+0

спасибо большое .. это было очень легко, но я не видел! – user1873662

Смежные вопросы