Фрагмент остается в макете после отсоединения и уничтожения активности - PullRequest
0 голосов
/ 09 ноября 2018

У меня очень интересный случай. Я включил опцию «не держать действия» в меню параметров разработчика на Android. Теперь, когда я запускаю приложение, все нормально, приложение запускается нормально.

Позже, когда я нажимаю кнопку «Домой» и выхожу из приложения, я вижу, что вызываются функции onDestroy (), фрагмента onDestroy () и onDetach (). Но когда я снова запускаю приложение, вызываются обратные вызовы onCreate () и onCreateView () фрагмента, , даже если фрагмент еще не добавлен .

И когда платформа приложения инициализируется и впервые добавляет фрагменты, я вижу, что фрагмент все еще находится внутри макета. Я знаю это, потому что объект фрагмента ниже должен сначала быть нулевым, но это не так. Это тот же фрагмент, который был удален после того, как я закрыл приложение раньше.

Fragment fragment = getSupportFragmentManager().findFragmentById(rootFragmentLayoutId);

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

Это какая-то ошибка с настройкой параметров разработчика? Если нет, то как это вообще возможно? Я боюсь, что у наших пользователей возникнут проблемы из-за этой проблемы.

...