Заменить текущую деятельность


Мне нужно заменить текущую деятельность на новую. То есть, я хочу начать новое действие и удалить текущее действие из стека задач.

основываясь на документации, кажется, что лучшим способом было бы начать работу с помощью активности.startActivity как обычно, а затем вызвать активности.закончить немедленно закрыть текущую активность.

это допустимое использование этих API, или я должен делать что-то еще?

4   51   2010-01-22 12:14:07

4 ответа:

да. Это нормально использовать api таким образом.

правильный способ добиться этого, используя следующие:

Intent intent = new Intent(this,MyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(intent);
this.finish();

код предполагает, что вы находитесь в деятельности, в противном случае, если вы используете фрагменты использовать getActivity()

таким образом, действие запускается, вы правильно устанавливаете свою иерархию для кнопки "назад", а также уничтожаете соответствующее действие.

попробуйте использовать FLAG_ACTIVITY_TASK_ON_HOME,FLAG_ACTIVITY_NEW_TASK в флагах намерения

вы можете добавить android: launchMode= "singleInstance" в своей деятельности, а затем переопределить метод onNewIntent для обновления даты

ссылка PlayerActivity в Exoplayer Demo