startActivity каждый раз создает новый экземпляр Activity - PullRequest
6 голосов
/ 07 декабря 2011

Я вызываю startActivity для передачи данных из одного действия в другое, используя контекст действия во внешнем классе.

Это один из примеров того, как я создаю намерение для отправки:

public static Intent createSearchIntent(Context context, Class<?> cls) {
    Intent i = new Intent(ACTION_SEARCH, null, context, cls);
    return i;
}

Вот как я начинаю занятие:

mContext.startActivity(mIntent); 

EDIT: Извините, я ошибся в том, что происходит. Действие не уничтожается, когда я вызываю startActivity, однако у действия, которому я отправляю намерение, всегда вызывается метод onCreate, поэтому я предполагаю, что создается новый экземпляр действия вместо возврата к приостановленному / остановленному.

Как бы я мог изменить его, чтобы я мог просто вернуться к приостановленной / остановленной активности?

Ответы [ 2 ]

8 голосов
/ 07 декабря 2011

Это когда вам нужно использовать флаги.Для того, чтобы ранее начатое действие вернулось к вершине стека, вам нужно добавить флаг i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); к своему намерению, а затем начать это занятие - startActivity(i) с 'i', являющимся именем намерения.
ДляСписок других флагов смотрите здесь .

4 голосов
/ 07 декабря 2011

Вызов Деятельности B из Деятельности A по умолчанию не разрушает саму Деятельность A, то, что вы видите, является Деятельностью B, отображаемой поверх Деятельности A, с перекрытием экрана. Вы можете проверить, нажав кнопку Back.

Это жизненный цикл активности: http://developer.android.com/reference/android/app/Activity.html

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