我创建了一个简单的闹钟。
它在oreo +上方和下方均能正常工作,但问题是当我在oreo +上方关闭应用程序时,闹钟无法正常工作。
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent nIntent = new Intent(getApplicationContext(),MyAlarm.class);
nIntent.setFlags(FLAG_INCLUDE_STOPPED_PACKAGES);
PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(), 1234, nIntent, 0);
//creating a pending intent using the intent
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, (int)alarmPeriodicTime, nIntent, PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager.cancel(pendingIntent);
if (Build.VERSION.SDK_INT >= 23) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmPeriodicTime, pendingIntent);
} else if (Build.VERSION.SDK_INT >= 19) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, alarmPeriodicTime, pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmPeriodicTime, pendingIntent);
}
Toast.makeText(this, "Alarm is set "+new Date(alarmPeriodicTime), Toast.LENGTH_SHORT).show();
有人知道为什么吗?