2016-07-25 1 views
5

, когда я послал Firebase Тема уведомления, onMessageReceived метод не срабатывает, когда приложение находится вМожно ли сохранить Firebase уведомление тему сохранения в SQLite, когда приложение находится близко в андроид

  1. фона и блокировки экрана
  2. Применение близко от недавнего применения

в выше два случая я получил уведомление только в системном трее, я хочу, чтобы справиться с этим программным в магазине в SQLite

same question i think

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

Так как я получаю Thats уведомление, я хочу хранить уведомление в SQLITE

моей просьбе почтальона ниже

{ 
    "to": "/topics/181_Red_Route", 
    "data": { 
    "sound": "default", 
    "badge": "1", 
    "title": "Title1", 
    "body": "Desc1" 
    }, 
    "notification": { 
    "sound": "default", 
    "badge": "1", 
    "title": "Title1", 
    "body": "Desc1" 
    }, 
    "priority": "high", 
    "content_available": true 
} 

заранее спасибо

+0

У меня есть одна и та же проблема: у кого-то есть решение, тогда ответьте на это .... спасибо .... –

+0

да @SubhashKhimani, возможно, вам нужно отправить push-уведомление с «данными», поэтому, когда вы отправляете push, и если вы используете приложение закрыть событие, если вы получили уведомление в приемнике, убедитесь, что вы правильно добавили приемник. –

ответ

0

https://firebase.google.com/docs/cloud-messaging/android/send-multiple

Проверить эту ссылку он отметил, что есть два способа так отправить сообщение полезной нагрузки.

1) Как Уведомление

2) Как данных

Если сервер отправить "Data" полезную нагрузку, то он будет получать в способе применения onMessageReceived(). И вы можете управлять им в onMessageReceived(), проверив полезную нагрузку, как указано ниже.

// Check if message contains a data payload. 
if (remoteMessage.getData().size() > 0) { 
    Log.d(TAG, "Message data payload: " + remoteMessage.getData()); 
} 

// Check if message contains a notification payload. 
if (remoteMessage.getNotification() != null) { 
    Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody()); 
} 

& Также проверьте, как сделать код сервера, передавая 'уведомление'/'данных'.

https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

0

эй, ребята у меня есть также то же самое проблема с моей Android приложения , когда приложение находится в фоновом режиме, что метод времени onMessageReceived не срабатывают

+0

не отправлять тег уведомления внутри json. использовать только данные ... он всегда будет срабатывать наMessageReceived – Kushan

0

Если вы отправляете уведомление тег внутри сообщения ТСМ, это не вызовет onMessageReceived код, когда приложение находится в фоновом режиме.

Вместо этого всегда отправляйте уведомление с тегом данных. Это гарантирует, что все сообщения FCM запускают вызов onMessageReceived. В этом вызове вы можете сохранить сообщение внутри db в соответствии с обычными методами Android.

Основная информация: Только отправьте тег данных и тег уведомления. Ручка показывает и сохраняет уведомление внутри onMessageReceived(). Работает ли приложение на переднем плане или на заднем плане или убито.

Предупреждение: Если вы планируете запуск IOS, сообщение FCM с тегом данных будет доставлено только в том случае, если приложение находится на переднем плане или имеет фоновый рисунок, но еще не убит. До тех пор никакие сообщения не будут получены.

Смежные вопросы