#java #android
#java #Android
Вопрос:
У меня есть 3 намерения A-> B-> C
из C, чтобы вернуться к A, вы вызываете меню и нажимаете home. Это завершает B и C и открывает A, который в манифесте задан как singletask.
Все это работает отлично, но когда я снова пытаюсь открыть B из A, мне приходится дважды нажимать на кнопку, которая запускает B. Тогда как при первом открытии приложения мне нужно нажать только один раз, чтобы открыть B
Почему это может быть так?
Думаю, я знаю почему. Я думаю, что B не заканчивается, когда я перехожу с C на A. Это код, работающий на C
Intent Intent = new Intent(this, com.home.test.Home.class);
this.setResult(1, Intent);
startActivity(Intent);
this.finish();
И это должно вызвать это на B, если я прав
public void onActivityResult(int requestCode, int resultCode, Intent data) {
this.finish();
}
Ответ №1:
По всей вероятности, вам это не нужно singleTask
. В C при вызове startActivity()
передаются FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP
как Intent
флаги. Это завершит C и B на пути к началу A.
Комментарии:
1. Ах, я увидел это сразу после моей правки, и это звучит именно так, как мне нужно. Не могли бы вы уточнить немного больше, если это возможно. Спасибо
2. Спасибо. Это гораздо лучшее решение по сравнению с тем, что у меня было раньше. У меня возникли проблемы с его реализацией, но это потому, что я забыл удалить singleTask из манифеста.