через BroadcastReceiver. при нажатии на уведомление стоит задача:
1. если аппка в бэкграунде - запустить активити и открыть в нём фрагмент который нужен
2. если аппка в форграунде, то нужно 1) проверить, открыто ли в ней сейчас активити, в которое я должен перейти при нажатии на нотификацию, если да, то открыть в нём фрагмент, который нужен. 2) если открыто другое активити, то сделать то же самое, что в шаге 1.
я понимаю, как проверить, в форгранде ли аппка или нет (ProcessLifecycleOwner.get().lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)).
но как чекнуть, открыто ли нужное активити сейчас, когда аппка в форграунде?
имхо, здесь хороший механизм описан и он может помочь https://medium.com/@deividi/dc64c29041a5
Дешевый и очень костыльный вариант, это проверять интанс активити. То есть сделать её синглтоном.
Обсуждают сегодня