当用户未连接到xmpp时,我正在使用FCM通知进行聊天。
FCM 中有 2 种通知模式1. 通知消息2. 数据消息
我使用数据消息作为通知消息,如果我的应用程序从最近的应用程序中清除,则不会收到通知消息
此方法适用于除奥利奥以外的所有版本。
对于奥利奥,只有当应用程序未连接到 xmpp 并在前台时,我才会收到通知。我的 onMessageReceived 方法被调用。
但是,当该应用程序被杀死或仅针对奥利奥从最近的应用程序中删除时,情况不会发生。
编辑:我在一加3设备上尝试过。
任何帮助,不胜感激。
这可能为时已晚,但One Plus手机具有称为电池优化的功能。关闭应用的电池优化功能后,您将立即开始收到后台通知。我的One Plus 5T也有同样的问题。
从奥利奥开始,引入了通知通道的概念。查看此处。
在启动时创建频道:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Create the NotificationChannel
CharSequence name = getString(R.string.channel_name);
String description = getString(R.string.channel_description);
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
mChannel.setDescription(description);
// Register the channel with the system; you can't change the importance
// or other notification behaviors after this
NotificationManager notificationManager = (NotificationManager) getSystemService(
NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(mChannel);
}
在清单中设置 ID:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/notification_channel_id"/>
notification_channel_id
与变量相同CHANNEL_ID