Выйти из приложения программно - PullRequest
1 голос
/ 28 февраля 2012

Я искал ответ, но не смог найти подходящий.Вопрос в том, что у меня есть тематическая деятельность в диалоге поверх обычной деятельности.Я хотел бы заставить пользователей либо читать и нажимать «ОК» на тематическое действие, которое затем переместит их в другое диалоговое тематическое действие для некоторых дополнительных вопросов, либо они не смогут войти в приложение.Итак, я хотел бы выйти из приложения при нажатии на кнопку, а не просто завершить тематическое действие, которое покажет содержание моего приложения.Как это возможно?

Ответы [ 3 ]

2 голосов
/ 28 февраля 2012

Если вы начинаете диалоговое действие с startActivityForResult(), вы можете отправить обратно результат RESULT_CANCELED из диалогового окна, и после получения этого (в вашей основной деятельности) вы вызываете finish().

2 голосов
/ 28 февраля 2012

finish() сделает для вас идеальную работу;)

но сделать диалог не отменяемым ..

Редактировать (после уточнения описания проблемы) : Как говорили другие, StartActivityForResult может работать с дополнительным приемом. Из-за того, как вы разрабатываете свое приложение ( DialogActivity1-> DialogActivity2 ), может быть полезно добавить следующую строку в файл AndroidManifest для всех ваших специальных действий по просмотру диалогов:

android:noHistory="true" или установить флаг для намерения Intent.FLAG_ACTIVITY_NO_HISTORY до запуска DialogActivityN.

Обе строки (из манифеста или кода) не позволят этой деятельности остаться в стеке Android, поэтому, когда ваш MainActivity вернет результат, он будет результатом последнего DialogActivity, а затем, в зависимости от полученного результата, вы можете либо finish(), либо продолжить выполнение MainActivity ..

когда вы начинаете такие действия, нет необходимости вызывать finish (), чтобы уничтожить их, вы просто начинаете новые действия, и они исчезают из стека. Конечно, в вашем случае последняя функция DialogActivity u начнется с StartActivityForResult (), и, как я объяснил в предыдущем параграфе, MainActivity будет делать что-то на основе полученных результатов.

Однако заставляя пользователя проходить через эти диалоговые окна несколько раз в начальном приложении, я не считаю это хорошей практикой, и это может заставить вашего пользователя просто сдаться и пойти на какое-то менее раздражающее приложение. (не поймите это неправильно, это всего лишь мой совет переосмыслить концепцию)

Надеюсь, вы решите это;) Ура

1 голос
/ 28 февраля 2012

Если вы знаете о ActivityforResult, тогда вам будет проще, сначала вам нужно запустить диалоговое действие с помощью метода startActivityforResult ... а затем, когда диалоговое действие приблизится к кнопке «назад», вы должны закрыть его, установив результат. В OnactivityResult метод запуска активности должен обнаружить то же самое и закрыть то же самое, если setResult не соответствует. Надеюсь, вы поняли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...