当手机处于睡眠状态时,onMessageReceived未被调用

3
我创建了一款应用程序,当接收到FCM的消息时会启动闹钟。无论应用程序在前台、后台还是活动关闭时,该应用程序均能正常工作。
但是当手机长时间处于睡眠模式(不知道确切时间)时,onMessageReceived方法直到手动唤醒手机才会被调用。根据文档,FCM消息是具有高优先级的数据消息,应该能够唤醒手机。
有哪些解决此问题的方法?使用WakeLock是否是正确的方法,或者会对电池寿命造成过大的负担?

我猜它们必须是主题消息吧?对吗? - Xenolion
是的,我正在将消息发送到一个主题,所有应用程序用户都会自动订阅。 - PaulB
1
这就是了@PaulB,你总会遇到一些奇怪的行为,因为主题消息虽然可以具有“高”优先级,但它们总是倾向于给予自己的优先级并且看起来优先级较低(有时),因为它们被认为非常广泛而不紧急。如果您的情况需要最快的方式,则发送到设备或设备组。这没有记录,只是我的经验! - Xenolion
好的,谢谢您的输入。我会尝试直接将其发送到设备并查看发生了什么。 - PaulB
我相信如果你将优先级设置为高,它总是会起作用的。祝一切顺利,编码愉快! - Xenolion
1个回答

0

从后端以此格式发送通知:

{ 


"notification" : {
    "click_action" : ".MainActivity", 
    "body" : "new Symulti update !", 
    "title" : "new Symulti update !", 
    "icon" : "ic_notif_symulti" }, 



"data": { ... },


"to" : "c9Vaa3ReGdk:APA91bH-AuXgg3lDN2WMcBrNhJZoFtYF9" }

关键在于添加

"click_action" : ".MainActivity"

用于处理点击操作。


当我第一次点击通知时,这不会产生任何影响吗? - PaulB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接