Я прочитал много ответов по этой теме, но ни один из них не решил эту проблему.
В приложении запущена «служба переднего плана», поэтому требуется уведомление.
Так создается Intent
.
Intent intent = new Intent(context, notificationClass);
return PendingIntent.getActivity(context, 0, intent, 0);
Обратите внимание, что класс Activity
для запуска из уведомления известен во время выполнения (notificationClass
). Для дополнительного контекста есть библиотека, которая предоставляет View
, который при накачке создает Service
, который создает Notification
, и поскольку любой Activity
может включать View
, Class
запрашивается, чтобы при пользователь нажимает на уведомление, возобновляет правильное Activity
.
Затем intent
добавляется к notificationBuilder
(NotificationCompat.Builder
).
notificationBuilder.setContentIntent(intent);
Реализуя это, когда приложение переходит в фоновый режим, а затем нажимается уведомление, оно создает новую копию Activity
вместо ее возобновления.
В целях тестирования я получил ожидаемое поведение (Activity
возобновляется после нажатия на уведомление), добавив launchMode
из Activity
(знать заранее) к singleTop
в файле AndroidManifest.xml
. Но я не смог заставить его работать по-другому.
С этими ограничениями мне интересно, возможно ли получить такое же поведение программно при создании Notification
. Я попробовал несколько комбинаций Intent
флагов (также addFlags
против setFlags
) без удачи.
Есть ли возможность создать Intent
, который будет вести себя как объяснено?
Большое спасибо!
cc'ing https://stackoverflow.com/users/769265/david-wasser, который ответил на множество похожих Intent
связанных вопросов