1

У меня есть приложение, у которого есть активность, скажем А., и я помещаю уведомление в панель уведомлений, которая начинается A. То есть, когда пользователь выбирает уведомление, активность будет начать. Но когда пользователь нажимает кнопку «Назад», система переходит на главный экран вместо предыдущей операции (возможно, из другого приложения). Как я могу просто позволить системе закончить деятельность A и вернуться к предыдущему действию вместо домашнего экрана?Вернитесь к предыдущему приложению, а не к главному экрану от уведомления

Мой код для создания уведомления:

Notification.Builder mBuilder = new Notification.Builder(this).setSmallIcon(R.drawable.icon).setContentText("title"); 
    Intent resultIntent = new Intent(this, ResultActivity.class); 
    resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    PendingIntent pi = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    mBuilder.setContentIntent(pi); 
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(0, mBuilder.build()); 

ответ

1

Я, кажется, чтобы найти ответ, добавьте следующие две строки:

resultIntent.setAction(Intent.ACTION_MAIN); 
resultIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

и удалить эту строку:

resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

Но на самом деле я не понимаю, почему. Кто-нибудь объяснит это или даст лучший ответ?

+0

'FLAG_ACTIVITY_NEW_TASK' создает новый задний стек с вашей активностью в корне. Когда пользователь выходит из него, они отправляются обратно в пусковую установку. Без 'FLAG_ACTIVITY_NEW_TASK' ваша активность добавляется в верхнюю часть существующего заднего стека. –

Смежные вопросы