2011-05-05 12 views
6

Mam 7 działań z przyciskami nawigacyjnymi w przód iw tył między pozostałymi; Aktywności składają się z editTexts, Spinners, textViews, TimePickers, DatePickers i pól wyboru.onSavedInstanceState vs. SharedPreferences

Chcę, aby cały UI był obecny i zapisany poprzez nawigację instancji aplikacji; jednak w momencie zakończenia aplikacji wszystko musi być domyślne.

Moja ósma aktywność gromadzi cały interfejs i miejsca w wiadomości e-mail. . .fyi

Czytałem dużo o obu onSavedInstanceState & SharedPreferences sposób zapisywania danych, jak działania tam iz powrotem. . .

Co byłoby dla mnie lepsze?

Odpowiedz

11

To będzie zależeć od tego, jak chcesz zarządzać danymi. Obie opcje (i więcej) są możliwe:

  • Jeśli chcesz wypełnić raz i przechowuje dane nawet wtedy, gdy aplikacja zostanie zabity, należy SharedPreferences.
  • Jeśli są to zmienne dane, które trzeba będzie wprowadzić ponownie w inny sposób (np. Kilka dni później), należy użyć onSavedInstanceState.
  • Jeśli chcesz zachować wielu zestawów danych na tym samym urządzeniu, a następnie użyć SQLiteDatabase
+0

Gdy ktoś podąża ścieżką wprowadzania danych, które zaprojektowałem (zawsze w jednym wystąpieniu aplikacji), przesyła je pocztą elektroniczną, gdy tylko wyślą je do mnie, nie będę już potrzebował żadnego zapisu danych, więc wierzę, że onsavedinstancestate stan będzie dziękuję! – SLYtiger

7

SharedPreferences

  • Stosowane do rzeczy, które powinny być zawsze pamiętał, bez względu na to, czy telefon jest wyłączony (np ustawień wybranych na ekranie ustawień swojej aplikacji

onSavedInstanceState

  • Służy do zapamiętywania informacji o bieżącym stanie aktywności, takich jak aktualnie wybrana karta na ekranie. Pozwala to na odtworzenie tego samego stanu po rotacji lub jeśli aplikacja została zabita z powodu małej ilości pamięci.
  • Rzeczy zapisane w onSaveInstanceState zostaną zapomniane po ponownym uruchomieniu komputera, a gdy zaczyna się nową instancję działalności nie będą one przekazywane, są więc tylko za pamięć stanu aktywności

onRetainNonConfigurationInstance

  • Służy do przechowywania przedmiotów, których ładowanie zajmuje dużo czasu, dzięki czemu nie trzeba ich ponownie ładować po obróceniu telefonu.
+0

Gdy ktoś podąża ścieżką wprowadzania danych, którą zaprojektowałem (zawsze w jednym przypadku aplikacji), wysyła dane, wysyłając je pocztą elektroniczną, nie potrzebuję już żadnego zapisu danych, więc wierzę, że stan onsavedinstancestate zadziała, dziękuję! – SLYtiger