Страницы

Поиск по вопросам

среда, 5 июня 2019 г.

как определить при старте приложения что получена нотификация?

У меня есть нотификации (уведомления) которые приходят от GCM. Даже если моя программа закрыта, я кликаю на нотификашку и открываю прогу. В ней чищу кое-какие данные в бд, и показываю кое-что на экране.
Если пользователь получил уведомление, когда программа была закрыта, и не нажал на него, но потом открыл программу обычным способом, необходимые действия не выполняются.
Как мне определить при запуске программы, выводились уведомления или нет, если да, то каким образом?


Ответ

Вобщем всем спасибо за ответы. Ближе всех был @pepyakin Так как я юзаю БД у себя в проекте я сделал так. когда получаю нотификацию, то в своем сервисе делаю просто
public void broadcast(String messageType, final Bundle message) { if (!ScanActivity.ACTIVITY_STATUS) { new NotificationStorage() .setTicker("Receipt") .setTitle("Receipt") .setBundle(message) .setMessage(message.getString("receipt_id")).generateNotification(this); ReceiptQueue receiptQueue = new ReceiptQueue(); receiptQueue.setReceptId(message.getString("receipt_id")); ReceiptQueueDao.save(receiptQueue); }
if (ScanActivity.ACTIVITY_STATUS) { Observer.getInstance().send(MessageType.RECEIPT_SHOW, message); }
}
тоесть тут моя проверка небольшая (открыто ли уже активити или нет). если открыто - я шлю обсервером нужное мне. если закрыто, то сохраняю данные нужные мне в БД. Дале два пути: 1. юзер тыкает на нотификацию 2. Юзер открывает через лаунчер В любом случае открывается активити, в котором я достаю данные из БД и если там чтото есть, делаю то что мне нужно. После этого очищаю табличку с этим данными. ВСЕ!)))

Комментариев нет:

Отправить комментарий