1

我正在使用 AlarmManager.setAlarmClock() 来提醒我的应用用户吃药。

今天(经过 15 天的正确工作) setAlarmClock() 没有发出警报来通知我的用户。

我该如何安排?

        for (Reminder reminder : reminderArrayList) {
        if(reminder.isActive()){
            GregorianCalendar cal = new GregorianCalendar();
            cal.set(GregorianCalendar.HOUR_OF_DAY, reminder.getHour());
            cal.set(GregorianCalendar.MINUTE, reminder.getMinute());
            cal.set(GregorianCalendar.SECOND, 0);
            while(cal.before(Calendar.getInstance())){
                cal.add(GregorianCalendar.DAY_OF_YEAR, getDaysFromIntervall(reminder.getIntervall()));
            }
            Intent intent = new Intent(context, AlarmReceiver.class);
            intent.putExtra("reminder_id", reminder.getId());

            PendingIntent pi = PendingIntent.getBroadcast(context, reminder.getCode(), intent, PendingIntent.FLAG_CANCEL_CURRENT);

            AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            am.setAlarmClock(new AlarmManager.AlarmClockInfo(cal.getTimeInMillis(), pi), pi);

        }
    }

问题发生在装有 Android 8.0.0 的 Galaxy S7 edge 上

如何确保我的警报会响起?

帮助将不胜感激。

提前致谢。

帕特里克

4

0 回答 0