Происходит следующее: вы создаете уведомление в своем собственном контексте активности и никогда не запускаете его из фоновой службы, поэтому, если вы не убьете приложение, вы сможете увидеть уведомление, так как контекст еще живи уведомление может быть создано.
Вы должны использовать AlarmManager
, чтобы запланировать свои уведомления, так как вы используете его в своем собственном контексте деятельности, я бы порекомендовал вам прочитать о AlarmManager
службе и как получитьэто делается с помощью уведомлений.
Хорошую статью о том, как этого добиться, можно найти здесь http://droidmentor.com/schedule-notifications-using-alarmmanager/
Как это работает - это просто:
Сначала вы настраиваете фоновую службунапример, AlarmManager
для запуска уведомлений вашего приложения в фоновом режиме
AlarmManager
установит время для уведомления, и даже если приложение будет убито, оно запустит ваше уведомление, поскольку AlarmManager
являетсяслужба, работающая в фоновом режиме системы.
Еще один совет - использовать службу облачных сообщений Firebase в сочетании с Notifi.cationCompat;вам просто нужно реализовать службу в своем манифесте, как это, чтобы запускать уведомления в фоновом режиме
<service
android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
Проверка документации по обмену сообщениями Firebase: https://firebase.google.com/docs/cloud-messaging/android/client