Я пишу SDK для использования в хостинге. Мой SDK создает уведомление, которое должно возобновить приложение, точно так же, как вы нажимаете кнопку "Задачи" и выбираете приложение, или долго нажимаете кнопку "Домой" и выбираете свое приложение.
Вот что я пытался сделать:
PackageManager packageManager = context.getPackageManager();
intent = packageManager.getLaunchIntentForPackage(context.getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 10, intent, flags);
Notification notification = new NotificationCompat.Builder(context).
setContentIntent(pendingIntent).
...
build();
getNotificationManager().notify(NOTIFICATION_ID, notification);
Я тестировал это приложение на хосте с одной активностью запуска с режимом обеда "по умолчанию" (в манифесте не было установлен режим запуска), и мой sdk также получил 1 активность в режиме "singleTask" в режиме обеда.
- Итак, я обедаю приложение
- Запустите мою работу с SDK, она запускает тестовое уведомление в методе onCreat.
- Я прихожу домой
- Я нажимаю на уведомление.
После выполнения этих шагов я ожидаю, что вернусь к своей активности, но вместо этого откроет еще один экземпляр активности запуска хоста. Что мне не хватает? Как это сделать?