Начало действий в цикле

1

У меня есть три действия, которые запускаются в цепочке. ActivityA запускает ActivityB, который затем запускает ActivityC. У меня также есть объект Application.

ActivityA начинает ActivityB с (этот фрагмент фактически находится в анонимном классе, поэтому ему нужно getApplicationContext() вместо this).

startActivity(new Intent(getApplicationContext(), ActivityB.class));

ActivityB запускает ActivityC с

startActivity(new Intent(this, ActivityC.class));

В ActivityC, если пользователь хочет вернуться к ActivityA, он нажмет кнопку, которая вызывает

startActivity(new Intent(getApplication(), ActivityA.class));

Мой вопрос: правильно ли это сделать, избегая утечек памяти?

  • 0
    Дополнительная информация о том, что делают ваши действия, будет полезна для оптимизации процесса для вашего приложения (т. startActivityForResult() Хотите ли вы вместо этого использовать startActivityForResult() или установите флаг для намерения, чтобы поддерживать только одну версию действия в стеке.
  • 0
    ActivityA - это ListView, который представляет главное меню приложения. В главном меню, если пользователь щелкает определенный элемент, он запускает ActivityB, PreferenceActivity. Только после прохождения ActivityB пользователю будет разрешено видеть ActivityC. Из ActivityC я хочу позволить пользователю вернуться в главное меню, но это главное меню, очевидно, не должно дублироваться в нескольких случаях. Я надеюсь, что это проясняет.
Показать ещё 3 комментария
Теги:

1 ответ

0

Это может быть, но я рекомендую использовать

android:launchMode="singleTop"

в вашем манифесте для ваших действий.

И, вообще говоря, не забывайте, что функции уже уложены андроидом, но вы правы, иногда этот механизм стекирования недостаточно гибкий.

Stéphane

  • 0
    Хороший совет, но я считаю, что лучше использовать его в сочетании с флагом намерений FLAG_ACTIVITY_CLEAR_TOP .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню