在后台应用程序时未调用消息的FireBase我正在使用Firebase并测试从我的服务器发送通知到我的应用程序,而应用程序在后台。通知发送成功,甚至出现在设备的通知中心,但当通知出现时或即使我单击它,也不会调用FCMessagingService中的onMessageReciser方法。在我的应用程序处于前台的时候,当我测试这个程序时,onMessageReciser方法就被调用了,一切都很好。当应用程序在后台运行时,问题就会发生。这是我想要的行为,还是有办法解决这个问题?这是我的FBMessagingService:import android.util.Log;import com.google.firebase.messaging.FirebaseMessagingService;import com.google.firebase.messaging.RemoteMessage;
public class FBMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.i("PVL", "MESSAGE RECEIVED!!");
if (remoteMessage.getNotification().getBody() != null) {
Log.i("PVL", "RECEIVED MESSAGE: " + remoteMessage.getNotification().getBody());
} else {
Log.i("PVL", "RECEIVED MESSAGE: " + remoteMessage.getData().get("message"));
}
}}
3 回答
![?](http://img1.sycdn.imooc.com/533e4d510001c2ad02000200-100-100.jpg)
慕仙森
TA贡献1827条经验 获得超8个赞
notification
data
onMessageReceived()
onMessageReceived()
"priority": "high"
{ "data":{ "id": 1, "missedRequests": 5 "addAnyDataHere": 123 }, "to": "fhiT7evmZk8:APA91bFJq7Tkly4BtLRXdYvqHno2vHCRkzpJT8QZy0TlIGs......", "priority": "high"}
onMessageReceived(RemoteMessage message)
Object obj = message.getData().get("id"); if (obj != null) { int id = Integer.valueOf(obj.toString()); }
![?](http://img1.sycdn.imooc.com/545846070001a15002200220-100-100.jpg)
GCT1015
TA贡献1827条经验 获得超4个赞
前台状态:单击通知将转到挂起的意图的活动,在创建通知时,您将以语法的方式提供该活动,因为它通常是用通知的数据有效负载创建的。 背景/死亡状态-在这里,系统本身根据通知有效负载创建一个通知,单击该通知将带您到应用程序的启动活动,在该活动中,您可以在任何生命周期方法中轻松地获取意图数据。
- 3 回答
- 0 关注
- 575 浏览
添加回答
举报
0/150
提交
取消