Как сделать, чтобы интент не заносился в стек

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Lighter
Сообщения: 61
Зарегистрирован: 13 авг 2013, 16:39

Как сделать, чтобы интент не заносился в стек

Сообщение Lighter » 10 сен 2013, 16:20

Всем привет!

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

Аватара пользователя
anber
Сообщения: 584
Зарегистрирован: 10 июн 2013, 15:05
Откуда: UA

Re: Как сделать, чтобы интент не заносился в стек

Сообщение anber » 10 сен 2013, 18:43

Activity в манифесте прописать android:noHistory="true";
ну или:

Код: Выделить всё

Intent intent = new Intent(this, SomeOtherClass.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivity(intent);
ЗЫ, Гуглить перед тем как спросить пробовали?
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.

Lighter
Сообщения: 61
Зарегистрирован: 13 авг 2013, 16:39

Re: Как сделать, чтобы интент не заносился в стек

Сообщение Lighter » 17 сен 2013, 13:09

У меня немного другая ситуация. У меня в MainActivity определяется зарегистрирован пользователь или нет. Если зарегистрирован создаётся один интент, если нет - другой.

Код: Выделить всё

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		Intent intent = null;
		if (AccountUtils.isRegistered(this)) {
			intent = new Intent(this, PersonalPageActivity.class);
		} else {
			intent = new Intent(this, RegistrationActivity.class).setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
		}
		startActivity(intent);
	}
Новая активность с окном регистрации действительно не заносится в стек, но MainActivity (код которой приведён выше) уже в стеке. Что делать в таком случае, очищать стек или есть другие способы, чтобы стартовая активность не заносилась в стек?

Аватара пользователя
anber
Сообщения: 584
Зарегистрирован: 10 июн 2013, 15:05
Откуда: UA

Re: Как сделать, чтобы интент не заносился в стек

Сообщение anber » 17 сен 2013, 17:38

finish() ?
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.

Lighter
Сообщения: 61
Зарегистрирован: 13 авг 2013, 16:39

Re: Как сделать, чтобы интент не заносился в стек

Сообщение Lighter » 19 сен 2013, 13:42

Есть ещё вопрос.
Допустим есть несколько окон при регистрации (RegistrationActivity1, RegistrationActivity2). Из RegistrationActivity1 пользователь переходит в RegistrationActivity2, а в случае успешной регистрации на PersonalPageActivity.
Как сделать, чтобы при переходе на PersonalPageActivity стек очищался, но была возможность перехода из RegistrationActivity2 на RegistrationActivity1 с помощью кнопки назад? FLAG_ACTIVITY_NEW_TASK не подходит.

Ответить