Закрыть активность на спине нажмите не popBackStack () - PullRequest
0 голосов
/ 31 октября 2019

Я добавил фрагмент с помощью addToBackStack (null), например:

 fragment = new MyBrowser();
            manager = getSupportFragmentManager();
                    manager.beginTransaction()
                    .setCustomAnimations(0, 0, android.R.anim.fade_in, android.R.anim.fade_out)
                    .replace(R.id.main_content, fragment)
                    .addToBackStack(null)
                    .commit();

, и если я нажимаю кнопку "Назад", происходит обычный метод popBackStack (), и фрагмент удаляется из действия, но мне нужно закрытьприложение напрямую без popBackStack ();

Я пытался поместить

 getSupportFragmentManager().popBackStack();

внутри onBackPressed ();

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

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Удалите его .addToBackStack(null).

Другим вариантом (обходным решением) будет перезапись onBackPressed и вызов activity.finish()

0 голосов
/ 02 ноября 2019

Для ситуаций такого типа Вы можете использовать код ниже. Здесь, в этом коде, я считаю запись backstack, и когда я нашел запись backstack 1 в то время, я просто выхожу из приложения.

  if (getSupportFragmentManager().getBackStackEntryCount() == 1) {
            //ExitApp();
            System.exit(0);
        }
        if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
            fragmentManager = getSupportFragmentManager();
            for (int i = 1; i < fragmentManager.getBackStackEntryCount(); ++i) {
                fragmentManager.popBackStack();
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...