Включение псевдонима активности с одной вершиной
В моем приложении есть активность с псевдонимом: MyActivity
а также MyAliasActivity
зарегистрирован в Манифесте. Назначение псевдонима - предоставить дополнительный фильтр намерений. Эта функция может быть включена / отключена во время выполнения пользователем. Активность и псевдоним есть singleTop
модификатор.
Однако, если я запускаю свое приложение с отключенным компонентом (MyActivity
вверху), затем я включаю его и транслирую событие, соответствующее фильтру намерений, MyActivity
создается еще раз (по псевдониму)- у меня есть два из них в backstack, что нежелательно.
Может ли он справиться каким-либо образом? Мне нужно иметь только одну активность в бэкстеке.
1 ответ
Вы должны использовать singleTask
вместо singleTop
, singleTask
гарантирует, что у вас есть только один экземпляр Activity в backStack. Если вы запускаете действие во второй раз с singleTask
Режим запуска, onNewIntent
будет запущен вместо создания новой деятельности. Другое решение заключается в использовании singleInstance
, это работает почти так же, как singleTask
, сохраняя только один экземпляр Activity и работая onNewIntent
если он уже создан.
Для получения дополнительной информации вот хорошее объяснение того, как это работает:
https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en
Справочник Google:
https://developer.android.com/guide/topics/manifest/activity-element.html