我创建了两个不同的每日通知。两者都将在不同的给定时间运行。第二个通知将从 API 获取一些数据,检查来自该 API 的数据是否与今天的日期匹配,并显示它。
每次我打开警报时都会运行第一个通知(我已经创建了打开或关闭通知的设置),但它不会在给定的时间运行。
另一个甚至不会运行 BroadcastReceiver 类,即使我已经设置了警报。
这是我的代码
MainActivity.java
public static void setAlarmDaily(Context context){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 7);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND,0);
Intent intent = new Intent(context, NotifyService.class);
intent.putExtra(EXTRA_TYPE, DAILY_REQUEST_CODE);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,100,intent,PendingIntent.FLAG_UPDATE_CURRENT);
if(alarmManager != null){
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent);
}
}
public static void setAlarmRelease(Context context){
Intent intent = new Intent(context, NotifyService.class);
intent.putExtra(EXTRA_TYPE, LATEST_REQUEST_CODE);
AlarmManager alarmManager1 = (AlarmManager)context.getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(context,101,intent,PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.HOUR_OF_DAY, 8);
calendar1.set(Calendar.MINUTE, 0);
calendar1.set(Calendar.SECOND,0);
if(alarmManager1 != null){
alarmManager1.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent1);
}
}
慕桂英3389331
相关分类