2013-09-04 4 views
1

Я разрабатываю приложение с более чем 3 классами. Мое приложение работает следующим образом:Как я могу остановить повторение поддержки?

Я перешел от основной деятельности к другому классу, а затем к 3-му классу и вернулся к 2-му классу, а затем к 3-му классу снова.

Моя проблема была, когда я нажал кнопку «Назад», когда я был в 3-м, он перешел на 2-й, а затем на 3-й и снова вернулся к 2-м, затем к 1-м, затем домой.

Я хочу остановить этот процесс.

+0

Каково предполагаемое поведение вашего приложения? Вы хотите, чтобы он вернулся домой с любого из трех экранов? Или переместить «назад» в определенном порядке (например, Main -> 2 -> 3)? – crazylpfan

+2

Это ожидаемое поведение. Вы можете установить для 2 и 3 'singleTop' и' FLAG_CLEAR_ON_LAUNCH'. Вы должны изучить прежде всего, как работает Android [stack] (http://developer.android.com/guide/components/tasks-and-back-stack.html) – gunar

+0

Пока вы читаете о пакетах по предложению @gunar, имейте просмотрите документы [Navigation Design] (http://developer.android.com/design/patterns/navigation.html), чтобы быть уверенными, что вы не слишком усложняете себя и своих пользователей. – Chilledrat

ответ

0

Использование отделки() в OnStop() метод

1

Я думаю, что проблема в том, когда вы вернулись ко второму классу с третьего класса, вы не уничтожить экземпляр третьего класса. Возможно, вы только что начали новую активность, например startActivity (второй класс). Каждый раз, когда вы переключаетесь на другой класс, вы создаете новый экземпляр Activity без уничтожения предыдущего. Повторяя это, многие экземпляры Activity были сохранены в стеке задач. Если вы не хотите повторять, вам нужно уничтожить предыдущую деятельность или изменить свою реализацию. Вы можете создать индивидуальный стек самостоятельно и добавить или удалить экземпляры класса в качестве представления, а не активности. так что 1 -> (добавить) 2 -> (добавить) 3 -> (удалить 3) 2 -> (добавить) 3 -> (удалить 3) 2 -> (удалить 2) 1.

Смежные вопросы