Используя AlarmManager для установки нескольких будильников, все работает нормально, но без будильника - PullRequest
0 голосов
/ 26 февраля 2011

Я пытаюсь установить кучу сигналов на основе списка минут, введенного пользователем. Если они нажали кнопку запуска часов в 16:00 и установили сигналы тревоги 5 минут, 10 минут и 15 минут, тогда мне нужно установить сигналы тревоги на 4:05, 4:10 и 4:15. Код, который у меня есть, кажется правильным, и тост отправляет мне сообщение «Установить будильник» для каждого элемента в моем списке, но на моем телефоне не срабатывают никакие тревоги:

setAlarm.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                String[] spAlarms = allAlarms.split(";");
                for(int i = 0; i < spAlarms.length; i++) {
                    try {
                        if(!spAlarms.equals("")) {
                            int time = Integer.valueOf(spAlarms[i]);
                            Calendar cal = Calendar.getInstance();
                            cal.add(Calendar.MINUTE, time);
                            Intent intent = new Intent(Hop_Timer.this, Alarm_Receiver.class);
                            intent.putExtra("alarm_message", "Time for your " + spAlarms[i] + " min addition!");
                            PendingIntent sender = PendingIntent.getBroadcast(Hop_Timer.this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                            AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
                            am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
                            Toast.makeText(getApplicationContext(), "Set alarm", Toast.LENGTH_SHORT).show();
                        }
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Насколько я знаю, вы не можете сделать это в OnClickListener, но лучшим решением будет сделать это в OnResume()

, и Ekta Parikh прав, что вы должны использовать cal.set(Calender.MINUTE, time);, чтобы иметь возможностьустановить будильник

0 голосов
/ 15 апреля 2011

Использовать cal.set (Calendar.MINUTE, время); вместо метода add.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...