android - 警报管理器没有运行?安卓
问题描述
任何想法为什么我的警报管理器不会运行?我已经摆弄了几个小时,其中一个正在运行,但另一个没有,我找不到解决方案。
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);
解决方案
您必须在清单文件中声明广播接收器,这是文档中的一个示例:
<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>
推荐阅读
- javascript - 循环通过 JSON 时无法读取未定义的属性“0”
- excel - 如何根据特定的幻灯片输入将幻灯片从现有演示文稿复制到新演示文稿?
- swift - 如何减少另一个函数中的步进值?
- javascript - 如何在自动完成上应用 .on() 方法?
- angular - 其他组件的角度更改 RouteLink 并添加额外的查询参数
- flutter - Image.asset中图像的圆角抖动?
- swift - 限制 Firestore 检索数据的频率
- reactjs - 如果时间为字符串,如何在反应材料 ui KeyboardDatePicker 中编辑时间?
- javascript - 使用 Google Classroom 浏览器 API 时避免暴露 API 密钥和客户端 ID
- django - 我无法使用 CreateView 将歌曲添加到特定专辑