Только одна копия Activity или одна копия приложения?

Столкнулся с проблемой, что можно запустить несколько копий одной Activity (приложения), если стартовать приложение из разных «мест». Получается так, что ты ее закрываешь, а под ней еще одна такая же. Мне удавалось до 3-4 штук одинаковых запускать.


Ну, грубо говоря, первый раз я приложение запустил как положено. Второй раз запустил его из Wakelock Detector, нажав на нем там «открыть». Запустилась новая копия приложения.


Так вот, как этого избежать? Делать костыли с проверкой, что я уже запущен или есть какой-то нормальный метод?

У Activity стоит флаг android:launchMode=«singleTop», запускается она в приложении вот так:

Intent in = new Intent(this, chatActivity.class);
in.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(in);



И из приложения все ок. Но когда разные копии приложения… беда.
  • Вопрос задан
  • 6043 просмотра
Решения вопроса 1
serso
@serso
Одно приложение (с одним package name) нельзя запустить несколько раз — VM запускается один раз. Activity, действтительно, можно создавать много — изучайте launchMode в AndroidManifest. Вам должен подойти singleTop, но задавать его нужно не программно (как у вас), а в манифесте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы