如果应用程序在前台运行,FCMService.java
可以完美地处理所有后台通知任务。当我从应用程序抽屉关闭应用程序时,上述服务停止处理传递的fcm消息,而是抛出以下日志
W/GCM:广播意图回调:result=CANCELLED for intent{act=com.google.android.c2dm.intent.REIVE flg=0x10000000pkg=com.technobees.nalamdot(具有额外功能(}
我在以下设备中进行了测试,用户使用权限ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
启用了isIgnoringBatteryOptimizations
。
- Oneplus 3t
- 小米Redmi 4、Note 4和Note 5 pro(已禁用MIUI优化(
从节点服务器发送消息
var message = {
'data': notification,
'token': token,
"android": {
"ttl": 0,
"priority": "HIGH"
},
"webpush": {
"headers": {
"TTL": "3000"
}
}
};
在FCMService.java
中
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Map<String, String> data = remoteMessage.getData();
//passing the data to the NotificationUtils -> which takes action based on "event"
}
在android清单中插入这些行对我来说很有效,
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
如果您想在应用程序处于关闭状态时收到通知,请尝试在您的清单文件中添加这些权限:
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />