I'm trying to deliver notifications in my app at specific times. I know about Doze and how nothing bypasses its restrictions except AlarmManager.setAlarmClock() because even even setExactAndAllowWhileIdle is not really exact. I really hoped I could deliver the notifications on time if I use setAlarmClock however it looks like even this method doesn't guarantee you precision.
setAlarmClock not exact in android marshmallow
So as I understand there are two different kinds of batching occurs when it comes to alarms. The general one occurs above api level 18 and the other occurs during Doze which happens in above api level 23. Please correct me if I'm wrong on this. If this is true then how am I able to by avoid both and deliver the notification at the exact time I set it to? Also I had a look at this library which does the api level based branching for me however it still use methods like setExactAndAllowWhileIdle which is not exact as I mentioned it above.
PS:this article and its continuation explain this stuff well.