앱이 백그라운드에 있어도 알림 메시지가 표시되지만 알림을받을 때마다 사용자가 알림을 클릭하지 않아도 자동으로 활동이 열립니다. 내 onMessageReceived
FCM Android 데이터 메시지
는
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Bundle b = new Bundle();
if (data.containsKey("click_action")) {
if(data.containsValue("postlike") || data.containsValue("comment") || data.containsValue("newpost")){
b.putString("PostId", data.get("post_id").toString());
Firebase_Action_Click.startActivity(data.get("click_action"), b, this);
} else {
Intent intent = new Intent(this, ActivityMain.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pendingIntent = PendingIntent.getActivity(this, 0, intent,PendingIntent.FLAG_ONE_SHOT);
}
}
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentText(data.get("body"))
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
그리고 내
public static void startActivity(String className, Bundle extras, Context context) {
Class cls = null;
try {
cls = Class.forName(className);
} catch(ClassNotFoundException e){
//means you made a wrong input in firebase console
}
Intent i = new Intent(context, cls);
i.putExtras(extras);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
내가이 줄을 추가 한 내 런처 활동 Firebase_Action_Click
,
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent.hasExtra("click_action")) {
Firebase_Action_Click.startActivity(intent.getStringExtra("click_action"), intent.getExtras(), this);
}
}
모든 것이 잘 진행이 아니라 유일한 문제입니다 앱이 백그라운드에 있어도 알림이 표시되는 경우에도 얼굴을 보게됩니다. 응용 프로그램을 자동으로 엽니 다.
사용자가 알림을 클릭 할 때만 동일한 작업을 원합니다.
사람이 사전에 감사
이 줄은 어떻게해야합니까? Firebase_Action_Click.startActivity (data.get ("click_action"), b, this); – Mushirih