#android #android-activity #android-intent
#Android #android-активность #android-намерение
Вопрос:
На данный момент у меня возникла проблема, и я бы оценил свежий взгляд другого человека на проблему.
У меня есть 3 отдельных действия.
Главная
Вопрос
Ответ
Из дома вы можете перейти только к вопросу, из вопроса вы можете перейти к ответу. Теперь из ответа вы можете вызвать меню и вернуться на главный экран. На этом этапе вопрос завершается с помощью обратного вызова и ответа с помощью finish (), но самое первое действие на главном экране все еще существует, и если вы нажмете кнопку «Назад», оно снова вернется к тому же экрану.
Это означает, что если я открыл вопрос на главном экране, затем перешел к ответу и из меню перешел на главный экран. Если бы я сделал это несколько раз, было бы запущено 2, 3 или более домашних экрана.
Есть ли что-нибудь, что я могу запустить, чтобы удалить все другие действия из моего запущенного приложения?
Извините, если это немного сбивает с толку, у меня тоже болит голова при одной мысли об этом. Если вы хотите получить более четкое разъяснение по этому поводу, я постараюсь изо всех сил.
Комментарии:
1.вероятно, вы захотите изучить возможность добавления флагов в свои намерения при запуске каждого действия. смотрите developer.android.com/reference/android/content /… developer.android.com/reference/android/content /…
2. Вы также можете добавить флаги в манифест. Я предлагаю изучить singleInstance и singleTask (я думаю, они называются)
3. @Falmarri это сработало отлично. Если вы хотите отправить это в качестве ответа, я приму это
Ответ №1:
Перед finish()
ответом установите какой-нибудь флаг (global var, shared pref, на ваш выбор), чтобы уведомить вопрос о том, что он также вызывается finish()
. Это вернет вас на главный экран в чистом виде.
Ответ №2:
Вы можете остановить более одного запущенного экземпляра действия, используя флаги намерения, например
Intent i = new Intent(this, ActivityA.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(i);
смотрите: установленные флаги общедоступных намерений (int flags)