Как установить будильник, используя диалог выбора времени редактирования текста - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь установить будильник для повтора из редактора времени выбора текста, но будильник не работает.Я не понимаю, как менеджер аварийных сигналов и ожидающие намерения могут работать здесь.Заранее спасибо.

    alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);


    chooseTime = findViewById(R.id.etChooseTime);
    chooseTime.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            calendar = Calendar.getInstance();
            currentHour = calendar.get(Calendar.HOUR_OF_DAY);
            currentMinute = calendar.get(Calendar.MINUTE);
            timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int hourOfDay, int minutes) {hours=currentHour;mins=currentMinute;
                    if (hourOfDay > 12) {
                        hourOfDay -= 12;
                        amPm = "PM";
                    } else if (hourOfDay == 0) {
                        hourOfDay += 12;
                        amPm = "AM";
                    } else if (hourOfDay == 12) {
                        amPm = "PM";
                    } else {
                        amPm = "AM";
                    }

                    chooseTime.setText(String.format("%02d:%02d", hourOfDay, minutes) + amPm);
                }
            }, currentHour, currentMinute, false);

            timePickerDialog.show();


        }
    });
}

Вот код менеджера тревог.

    public void OnToggleClicked(View view)
    {

        if (((ToggleButton) view).isChecked()) {

            int p = hours * 60;
            int q = p + mins;

            Intent intent = new Intent(this, AlarmReceiver.class);
            pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
            alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(),
                    q * 60 * 1000, pendingIntent);
        }

        else
        {
            alarmManager.cancel(pendingIntent);

        }
}
...