AlarmManager在当前日期执行,但我需要在10h。
我在AlarmManager中的日程安排代码
public class RecieverAlert extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 10);
intent = new Intent(context, BootReciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,25202,intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
if(Build.VERSION.SDK_INT < 23){
if(Build.VERSION.SDK_INT >= 19){
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTime().getTime(), pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTime().getTime(), pendingIntent);
}
} else {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTime().getTime(), pendingIntent);
}
}
使用Calendar类,我得到正确的long值,但是AlarmManager按时运行,而不是按Calendar类发送的时间表运行。