我正在使用FCM进行推送通知,只处理数据有效载荷。当应用程序在前台时,多个通知可以正常工作,在这里,我使用来自服务器的ID值在click_action中移动通知以便在点击它时将其移到相关帖子。但是,当应用程序处于后台/关闭状态时,每当我收到多个通知时,我会点击一个通知,它会进入相关帖子,但是其余的通知不会重定向到相关帖子,只是从通知中清除。我没有找到为什么会出现这个问题的原因。以下是我的代码
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
sendNotification(remoteMessage.getData().get("title"),remoteMessage.getData().get("body"),remoteMessage.getData().get("click_action"),image);
}
private void sendNotification(String title, String message, String id, String image) {
Log.d("notificationdetails",title+",,,"+message+",,"+id);
Intent intent = null;
int postid = Integer.valueOf(id);
if(id.equals("")|| id==null) {
intent = new Intent(this, SplashActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
else{
Constants.PushId = postid;
intent = new Intent(this, DetailActivity.class);
Log.d("mypostid",postid+"");
intent.putExtra("id", postid);
intent.putExtra("backpage","main");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
PendingIntent pendingIntent = PendingIntent.getActivity(this, postid, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher_primepost)
.setContentTitle(title)
.setStyle(new NotificationCompat.BigTextStyle().bigText(message))
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Random random = new Random();
int num = random.nextInt(99999-1000)+1000;
notificationManager.notify(num /* ID of notification */, notificationBuilder.build());
}
}
Manifest.xml
<activity android:name="com.primepostnews.app.Activities.DetailActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="Detail" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>