finish()
сделает для вас идеальную работу;)
но сделать диалог не отменяемым ..
Редактировать (после уточнения описания проблемы) :
Как говорили другие, StartActivityForResult может работать с дополнительным приемом.
Из-за того, как вы разрабатываете свое приложение ( DialogActivity1-> DialogActivity2 ), может быть полезно добавить следующую строку в файл AndroidManifest для всех ваших специальных действий по просмотру диалогов:
android:noHistory="true"
или установить флаг для намерения Intent.FLAG_ACTIVITY_NO_HISTORY
до запуска DialogActivityN.
Обе строки (из манифеста или кода) не позволят этой деятельности остаться в стеке Android, поэтому, когда ваш MainActivity вернет результат, он будет результатом последнего DialogActivity, а затем, в зависимости от полученного результата, вы можете либо finish()
, либо продолжить выполнение MainActivity ..
когда вы начинаете такие действия, нет необходимости вызывать finish (), чтобы уничтожить их, вы просто начинаете новые действия, и они исчезают из стека. Конечно, в вашем случае последняя функция DialogActivity u начнется с StartActivityForResult (), и, как я объяснил в предыдущем параграфе, MainActivity будет делать что-то на основе полученных результатов.
Однако заставляя пользователя проходить через эти диалоговые окна несколько раз в начальном приложении, я не считаю это хорошей практикой, и это может заставить вашего пользователя просто сдаться и пойти на какое-то менее раздражающее приложение. (не поймите это неправильно, это всего лишь мой совет переосмыслить концепцию)
Надеюсь, вы решите это;) Ура