Показать хедз-ап уведомления о текущей активности - PullRequest
0 голосов
/ 27 августа 2018

Я хочу прослушивать событие в облачной базе данных, пока приложение находится на переднем плане, и отображать оповещения, независимо от того, в какой активности находится пользователь.

Мой подход заключается в том, чтобы подписаться на событие, наблюдаемое в 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())
        }
    }
}
...