W systemie Android, gdy zmienia się orientacja ekranu (między krajobrazem i portretem), wywoływana jest metoda onCreate
, która, jeśli nie zostanie poprawnie obsłużona, odtworzy całą aktywność, gdy wynik zbyt szybko zmieni układ i zachowaj wszystkie te same informacje.Android: Efektywne obracanie ekranu Obróbka
Znam kilka sposobów rozwiązania tego problemu, ale jestem zainteresowany najbardziej efektywnym sposobem.
1) Powiedzenie manifestu, że obsłużę zmianę orientacji przez przesłonięcie metody i pozostawienie jej pustej.
2) zastąpić onSaveInstanceState()
i zapisać tutaj dane, które mają być odbudowane w onCreate()
3) Przestawianie onPause()
który utworzy pakiet danych i wysłać go do onSaveInstanceState()
Oczywiście, wszystkie te opcje, ale który z nich jest lepszy praktyka (małe, średnie, duże ilości danych)
Dziękuję
Jednym ze sposobów jest powstrzymanie ponownego tworzenia aktywności i przełączenie pomiędzy układem pionowym i poziomym. Sprawdź moją odpowiedź [tutaj] (http://stackoverflow.com/questions/7749675/how-to-stop-changing-the-orientation-when-a-progress-bar-is-spinning-in-android/7749727#7749727) –
Podczas gdy ten sposób wydaje się dobrze działać, chcę móc skorzystać z automatycznej zmiany w układach za pomocą folderu 'res/layout-land'. O ile oczywiście nie jest to zbyt duże obciążenie dla prostej czynności. – Sababado
Cóż, zmieni się automatycznie jego układ, wystarczy zmienić treść w kodzie, który to robi. –