Я пытаюсь установить будильник в определенное время с помощью диспетчера аварийных сигналов, но тревога инициируется мгновенно?


0

Это мой OnClick() работать.Отменить установят целевой сигнал

 
     SA=(Button)findViewById(R.id.button1); 
     SA.setOnClickListener(new OnClickListener() { 

     @SuppressWarnings("deprecation") 
     @Override 
      public void onClick(View v) { 
       showDialog(id); 


      } 
     }); 

    } 
     @Override 
     protected Dialog onCreateDialog(int id1) { 
     switch (id1) { 
     case id: 
      // set time picker as current time 

      return new TimePickerDialog(this, 
             timePickerListener, hour, min,false); 
     } 
     return null; 
    } 

     private TimePickerDialog.OnTimeSetListener timePickerListener = 
      new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int selectedHour, 
       int selectedMinute) { 
      Calendar calnow=Calendar.getInstance(); 
      calnow.setTimeInMillis(System.currentTimeMillis()); 
      calnow.set(Calendar.HOUR_OF_DAY,selectedHour); 
      calnow.set(Calendar.MINUTE,selectedMinute); 
      calnow.set(Calendar.SECOND, 0); 
      Intent intent=new Intent(getBaseContext(),alarm.class); 
      PendingIntent pendingintent= PendingIntent.getBroadcast(getBaseContext(),0,  intent, 0); 
      AlarmManager alarmManager =  (AlarmManager)getSystemService(Context.ALARM_SERVICE); 

       alarmManager.set(AlarmManager.RTC_WAKEUP, calnow.getTimeInMillis(),pendingintent); 
       Toast.makeText(getBaseContext(), "alarm set", Toast.LENGTH_SHORT).show(); 

     } 
    }; 

 

    public void onReceive(Context arg0, Intent arg1) { 
     AlarmManager mgr = (AlarmManager)arg0.getSystemService(Context.ALARM_SERVICE); 

      Toast.makeText(arg0,"Alarm Started.....", Toast.LENGTH_LONG).show(); 

Здесь проблема заключается в том, что я получаю как тостов «тревога набор» и «тревога начала» как только я нажимаю кнопку, чтобы установить перед достижением целевого сигнала тревоги.

  0

Когда вы поставили здесь точку останова, 'alarmManager.set (AlarmManager.RTC_WAKEUP, calnow.getTimeInMillis(), pendingintent); ', каково значение' calnow.getTimeInMillis() '? 29 июл. 132013-07-29 19:46:10

  0

Что такое TP, откуда у вас есть время? 29 июл. 132013-07-29 19:57:21

  0

Как вы устанавливаете значение TP? Вы проверили, что это определенно время в будущем? Результат, который вы видите, означает, что это время в прошлом или настоящем. 29 июл. 132013-07-29 20:29:39

  0

@opiatefuchs TimePicker TP = новый TimePicker(); если у вас есть какое-либо решение, напишите мне, чтобы треска была актуальна, я новый для android, поэтому, пожалуйста, помогите мне с вами 30 июл. 132013-07-30 17:36:02

0

проблема здесь в том, что значение от TP кажется текущим. Было бы полезно, если бы вы указали больше своего кода. Позвольте мне привести вам пример установки времени будильника с задержкой в ​​5 секунд. Пожалуйста, попробуйте это, это грязный способ, я просто хочу объяснить. Это то, что вы сделали:

 calnow.set(Calendar.HOUR_OF_DAY,TP.getCurrentHour()); 
      calnow.set(Calendar.MINUTE,TP.getCurrentMinute()); 
      alarmManager.set(AlarmManager.RTC_WAKEUP, calnow.getTimeInMillis(),pendingintent); 

получить задержку в пять секунд, чтобы изменить его

alarmManager.set(AlarmManager.RTC_WAKEUP, calnow.getTimeInMillis()+5000,pendingintent); 

как я уже сказал, это только, чтобы показать, какое значение Вы должны установить в alarmManager. Это должно быть время в миллисекундах, когда вы хотите запустить будильник. Для этого вы должны быть уверены, что получите правильные значения от своей TP. Итак, если вы хотите, чтобы мы помогли вам, это будет хороший способ показать нам полный код.

  0

Thanx для вашей помощи. Я только что загрузил новый код, пожалуйста, проверьте его и помогите мне 30 июл. 132013-07-30 18:30:26