Chciałbym użyć android:configChanges="orientation|keyboardHidden"
dla kilku moich działań, aby mój onCreate nie został ponownie wywołany, ale pomyślałem, że sprawdzę, czy ktoś ma listę za i przeciw, ponieważ this link mówi, że powinien tylko być w ostateczności.Jakie są plusy i minusy używania configChanges = "orientacja" dla urządzeń z systemem Android?
Odpowiedz
Dużym profesjonalistą w używaniu tego podejścia jest to, że wymaga on bardzo niewielkiego wysiłku z Twojej strony i że twoja aplikacja przetrwa zmiany konfiguracji bez uciekania się do awarii.
Niewielką wadą jest to, że przy użyciu zasobów specyficznych dla konfiguracji (dla orientacji poziomej lub pionowej) nie są one stosowane automatycznie.
W moim (może małym) doświadczeniu, myślę, że nie jest to naprawdę warte wysiłku, aby wykonać całą instalację wodno-kanalizacyjną.
"Właściwa" obsługa tych zmian wymaga dużo pracy z twojej strony, a sytuacja staje się jeszcze bardziej dramatyczna, jeśli musisz obsługiwać okna dialogowe postępu podczas zmian orientacji ekranu.
Chociaż większość ludzi zdecyduje się na szybką naprawę, zmieniając manifest i konfigurując swoją aktywność za pomocą android: configChanges = "keyboardHidden | orientation", myślę, że ważne jest, aby zdać sobie sprawę, że istnieją alternatywne rozwiązania.
Wymaga więcej kodu, ale zapewnia lepszy wgląd w ogólną funkcjonalność systemu.
To dziwne, że Google naprawdę nie porozmawiać o rozumowanie za nim, ale istnieją trzy główne powody, mogę myśleć, aby uniknąć używania tego podejścia:
- z mojego doświadczenia, niektóre rodzaje view (szczególnie WebView i MapViews na Androidzie 2.1 lub niższym) mogą zachowywać się dość dziwnie po zmianie orientacji, jeśli nie zostały odtworzone (na przykład zmienione przyciski zoomu).
- Zapobiega stosowaniu układów specyficznych dla orientacji (zobacz na przykład widok krajobrazu nowej aplikacji Market).
- To może powstrzymać cię przed wykryciem błędnego zachowania z twojej aplikacji w związku z innymi powodami, dla których Twoja Aktywność może zostać zniszczona i odtworzona (np. Słaba pamięć lub inne normalne zabójstwa w tle). Oznacza to, że jeśli twoja działalność może z wdziękiem obsługiwać ponowne uruchomienie z powodu rotacji, prawdopodobnie może obsłużyć ponowne uruchomienie z powodu zabijania tła. Jeśli jednak pominiesz rotację obsługi, nie możesz napotkać restartu z powodu zabijania tła podczas normalnego testowania, dopóki użytkownik ze starszym telefonem o niskiej pamięci nie zarejestruje się z raportem o błędzie.
Ostatni powód jest wielki; szczególnie ze starszymi telefonami o niskiej pamięci RAM i podobno bardziej agresywnymi zachowaniami w Gingerbread, twoje działania muszą wiedzieć, jak szybko odtworzyć je po zniszczeniu, zapisując ich stan, bez względu na orientację. A kiedy twoje działania będą w stanie poradzić sobie z takimi rodzajami zniszczenia/rekreacji, prawdopodobnie wszystko gotowe do zmiany zmiany zabije. Możesz uzyskać pewną prędkość, pochłaniając zdarzenie rotacyjne (ponieważ nie musisz wracać przez układy i to wszystko), ale to już wszystko.
Jeśli zdecydujesz się połknąć rotacje, zdecydowanie zalecamy zawsze używanie emulatora lub urządzenia z zaznaczoną opcją "Natychmiastowe niszczenie aktywności" Development.apk, a następnie upewnianie się, że przełączanie aplikacji lub tworzenie kopii zapasowej stosu zadań nadal działa poprawnie.
Z mojego doświadczenia wynika, że pochłanianie rotacji może być dobrym wyborem dla poprawy komfortu użytkownika, szczególnie w przypadku czynności o złożonych układach, które mogą zająć kilka chwil, aby odtworzyć, ale naprawdę trzeba dokładnie i skutecznie sprawdzić, czy aktywność nadal działają nawet bez ignorowania obrotu.
- 1. Jakie są plusy i minusy używania `select table_name. *`?
- 2. Jakie są plusy i minusy używania zmiennych rozgłoszeniowych w singleton?
- 3. Jakie są plusy i minusy modelowania kotwicy?
- 4. Jakie są plusy i minusy używania bazy danych dla IPC do udostępniania danych zamiast przekazywania wiadomości?
- 5. Jakie są plusy i minusy podstawowego uwierzytelniania HTTP
- 6. OcMock vs OcMockito - jakie są plusy i minusy
- 7. Jakie są plusy i minusy używania jednego lub wielu DbContext z EF?
- 8. Plusy i minusy READ_COMMITTED_SNAPSHOT
- 9. Jakie są plusy i minusy LinkedHashMaps vs. LinkedHashSets?
- 10. Jakie są twoje plusy i minusy git po użyciu?
- 11. Jakie są plusy i minusy RemObjects PascalScript kontra skrypt DWS?
- 12. Microsoft pyta: Lista pojedyncza lub podwójna? Jakie są plusy i minusy używania każdego z nich?
- 13. Jakie są plusy i minusy Git-Flow vs Github-Flow?
- 14. newid() vs newsequentialid() Jakie są różnice/plusy i minusy?
- 15. SELECT * - plusy/minusy
- 16. Jakie są plusy i minusy używania matryc, kątów Eulera i/lub kwateranów do reprezentacji rotacji?
- 17. ServiceBus Architektura Plusy i minusy
- 18. Jakie są plusy i minusy używania VARCHAR vs TEXT do przechowywania małych dokumentów XML w MySQL?
- 19. Jakie są plusy i minusy używania XML do przesyłania danych w tym programie Java?
- 20. Jakie są plusy i minusy używania silnika szablonu, takiego jak Jade?
- 21. Pliki mapowane w pamięci: plusy i minusy?
- 22. Orientacja urządzenia z systemem Android
- 23. Jakie są plusy i minusy Asset-Pipeline/Turbolinks z Rails 4 dla dużej aplikacji?
- 24. Plusy i minusy używania Lucene w klasie MultiSearcher
- 25. Plusy i minusy: Hibernacja vs. EJB 3
- 26. Wypoczynek vs Wcf plusy i minusy
- 27. GLib v APR plusy i minusy każdego
- 28. Jakie są plusy i minusy przy użyciu wizualnych komponentów markowe Studio dla danych
- 29. plusy i minusy db i ndb w silniku aplikacji Google
- 30. Programowanie w wirtualnej maszynie - plusy i minusy
Informacje o WebView, jest problematyczne, ponieważ zmiana orientacji podczas ładowania spowoduje ponowne uruchomienie ładowania. Jak już przeczytałem, nie możesz przywrócić jego stanu (i jest nawet napisany w dokumentach) –