Диспетчер тревог не работает? Android - PullRequest
1 голос
/ 03 марта 2020

Есть идеи, почему мой диспетчер аварий не запустится? Я возился часами, и один из них работает, а другой нет, и я не могу найти решение.

Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());//set the current time and date for this calendar

Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
cal.set(Calendar.HOUR_OF_DAY, startHours);
cal.set(Calendar.MINUTE, startMinutes);
cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(WelcomeScreen.this, DNDAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(WelcomeScreen.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 86400000, pendingIntent);

1 Ответ

0 голосов
/ 03 марта 2020

Вы должны объявить получателя Broadcast в файле манифеста, вот пример из документации:

<receiver android:name=".MyBroadcastReceiver"  android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
        <action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
    </intent-filter>
</receiver>
...