我的需求是在特定的时间,如用户生日或节日设置通知
我正在使用AlarmManager来使用广播接收器安排通知
代码在6.0
上运行正常(即使应用程序被杀死,从最近列表中滑出),但在Android 8.1.0
(Mf:Oppo)上无法正常工作
阅读了这篇文章和这篇文章以及许多答案,但没有找到任何有用的帮助。您有解决此问题的任何想法吗?
以下是我的代码
AlarmManager am = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
//creating a new intent specifying the broadcast receiver\
Intent i = new Intent(this, HolidayBroadcast.class);
i.putExtra("eventName",islamicHoliday.getEventName());
i.putExtra("dateH", testTmp.getCalendar().getTimeInMillis());
i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
//creating a pending intent using the intent
PendingIntent pi = PendingIntent.getBroadcast(this, new Random().nextInt(), i, PendingIntent.FLAG_UPDATE_CURRENT);
//setting alarm
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.M) {
am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,getTimeInMillis(), pi);
}
else
{
am.setExact(AlarmManager.RTC_WAKEUP, getTimeInMillis(), pi);
}