docs na setRetainInstance powiedzieć:jak mogę dzielić rzeczy z Fragmentami z setRetainInstance (true) i dodawać je do backstack?
ten może być używany tylko z fragmentów nie na tylnym stosie.
więc zacząłem grać z tym.
Mam jedno Aktywny dodaje pierwszego fraga
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content, new PackageFragment());
ft.commit
następnie z tego frag uruchomić metodę z dominującą aktywność, która dodaje frag B backstack
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content, new OrderFragment());
ft.addToBackStack(null);
ft.commit();
następnie tworzę dziennika wiad z onCreate, onDestroy, onSaveInstanceState, onActivityCreated ... itd.
Próbuję dwóch wersji tego procesu. Obracanie urządzenia na każdym fragmencie.
- domyślny
Wszystko jest zgodnie z oczekiwaniami. onCreate, onDestroy na fragmentach ognia
- setRetainInstance (true)
Wszystko zgodnie z oczekiwaniami ?. onCreate, onDestroy na fragmentach nie ognia
i wszystko wydaje się działać, gdy fragmenty są w backstack .. więc dlaczego doktorzy mówią, że nie powinienem go używać? Jakie są scenariusze, w których mogę mieć kłopoty?
dzięki
Po naciśnięciu przycisku wstecz kiedy zaczniesz widzieć różnicę. Tak na przykład jeśli setRetainInstance został użyty na fragment widoku szczegółów, który tymczasowo się pojawia, naciśnięcie klawisza back może spowodować wyjście z aplikacji zamiast zamykania tego fragmentu widoku szczegółów tymczasowych. –
Dzięki Marco, czy udało ci się odtworzyć ten problem? proszę podziel się, jeśli tak. Mogę cofnąć się bez problemu. Przetestowałem kilka scenariuszy i zawsze fragment szczegółów jest właściwie niszczony, gdy naciskam, podczas gdy oba fragi mają setRetainInstance (true). – AndroidGecko
Odzyskuję mój komentarz. Widzę podobne zachowanie ... –