Я хочу прослушивать событие в облачной базе данных, пока приложение находится на переднем плане, и отображать оповещения, независимо от того, в какой активности находится пользователь.
Мой подход заключается в том, чтобы подписаться на событие, наблюдаемое в onCreate
MainActivity, и создать там уведомление. Проблема в том, что хедз-ап уведомления показываются только тогда, когда пользователь находится в MainActivity. Если они где-то еще, только звук, без хедз-апа. Я думаю, это потому, что я указал контекст this
в NotificationCompat.Builder
. Как обойти это?
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...
viewModel.newAlarmSignal.subscribe {
if (it) {
val mBuilder = NotificationCompat.Builder(this, "MyChannel")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("You received a new alarm")
.setContentText("Click to view")
.setDefaults(Notification.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_MAX)
NotificationManagerCompat.from(this).notify(1, mBuilder.build())
}
}
}