Habría que distinguir si hablamos de notificaciones generadas por un servidor (notificaciones push) o si hablamos de mostrar una notificación programada por la app en local a modo de recordatorio.
Para lo primero Google/Firebase Cloud Messaging, para lo segundo el AlarmManager.