1

Я пишу простое приложение для Android, и я бы хотел лучше контролировать навигацию/отношения между действиями. Я не хочу, чтобы мои действия действовали как андроидные действия ... Я не хочу, чтобы они складывались в Задаче. Я хочу один Activity (назовем его MainActivity), чтобы быть точкой посадки и всегда быть в нижней части стека, и я хочу только один экземпляр моего второго действия (назовите его SecondActivity), чтобы быть над ним в стек ... было бы неплохо снова использовать его. Я думал, что смогу получить такое поведение, сделав MainActivity «основным» Activity, и объявим их как launchMode=singleTop. Это совсем не работает. Я предоставляю навигацию между ними с помощью меню, поэтому, когда я возвращаюсь туда и обратно, кучу раз и обратно из приложения, я просматриваю весь стек.Переопределение поведения активности/задачи в Android

Как наилучший способ иметь прекрасный контроль над стеклом Activity задачи? Я хочу, чтобы MainActivity всегда возвращался из приложения и SecondActivity всегда возвращался в один экземпляр MainActivity. Кроме того, мне бы хотелось получить singleTop, чтобы я использовал onNewIntent вместо того, чтобы создавать и уничтожать каждый раз. Использование манифеста, а также флаг намерения просто не работает. Есть идеи?

ответ

2

Ну, вы всегда можете просто вызвать «finish()» в пределах того, что Activity вызывает другое действие после вызова «startActivity()». Я бы определенно посоветовал не пытаться набить все приложение на два класса активности и попытаться обменяться мнениями на основе того, что они делают. Если это так важно для вас, просто закройте свои действия, когда вы запускаете новые (очевидно, не MainActivity, хотя).

+0

Это не вопрос заполнения всего приложения двумя действиями, так как это относительно простое приложение, которое действительно имеет только два разных вида, один из которых является только целевой страницей. И я ищу для повторного использования, которое объявляет singleTop launchMode. Я точно не знаю, как много идет на создание класса Activity на Android, но я знаю на других платформах, я бы предпочел повторное использование экземпляра singleton, где имело смысл над конструированием и уничтожением одного и того же объекта снова и снова – Rich

+2

Я бы описал что как преждевременная оптимизация. В Android Market есть более 10 000 приложений. Подавляющее большинство просто приступит к новым действиям, когда это необходимо, и пусть эти действия закрываются, когда пользователь их покидает. В конце концов, система управления памятью под Android предполагает, что эта модель, основная группа разработчиков Android, продвигает эту модель и т. Д. Помните: ваши действия разрушаются и воссоздаются по умолчанию при изменении ориентации. – CommonsWare

+0

хорошая точка ... спасибо – Rich