Новое намерение не запустится с первого раза

#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 из манифеста.