Не уверен насчет уведомления об отклонении при нажатии, но поскольку ваша проблема связана с неправильной навигацией.
Мы можем проверить, находится ли приложение на переднем плане или нет, и запретить открывать новые действия с помощью щелчка уведомлений, если приложение на переднем плане..
//If app is in foreground setting pending intent to null
PendingIntent pendingIntent;
Intent notificationIntent = new Intent(getApplicationContext(), Main2Activity.class);
if(isAppInForeground()){
Log.e("--^","inForeground");
pendingIntent = null;
}else{
Log.e("--^","inBackground");
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
Добавить эту функцию (ИСТОЧНИК: ссылка )
private boolean isAppInForeground() {
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> services = activityManager.getRunningAppProcesses();
boolean isActivityFound = false;
if (services.get(0).processName
.equalsIgnoreCase(getPackageName()) && services.get(0).importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
isActivityFound = true;
}
return isActivityFound;
}
В этом случае, если уведомление пришло, когда приложение находится на переднем плане, оно ничего не будет делать, еслищелкнул.Таким образом, у пользователя есть только один вариант, чтобы провести его, чтобы удалить.