我的要求是针对特定时间(例如用户生日或假期)设置的Notification
我正在使用 AlarmManager 通过广播接收器安排通知
代码在6.0
上工作正常(即使应用被杀死,从最近的列表中清除),但在Android 8.1.0
上却无法正常工作(MF:Oppo)
阅读了This和This以及许多答案,但没有任何帮助 任何想法如何解决这个问题
这是我的代码
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);
}
答案 0 :(得分:0)
您可以使用链接中提到的workmanager。它支持所有api版本并且易于使用,因为它向后兼容API级别14
https://developer.android.com/topic/libraries/architecture/workmanager
https://medium.com/androiddevelopers/introducing-workmanager-2083bcfc4712