2011-05-05 57 views
6

我有7個活動全部與其他之間來回導航按鈕; activite由editTexts,Spinners,textViews,TimePickers,DatePickers和複選框組成。onSavedInstanceState與SharedPreferences

我希望所有UI都能通過應用程序實例的導航進行存在和保存;然而,在應用程序終止時,一切都需要默認。

我的第8項活動將所有用戶界面和地點收集到一封電子郵件中。 。 .fyi

我已經讀了很多關於onSavedInstanceState的內容& SharedPreferences數據保存的方式來回活動。 。 。

哪個對我更好?

回答

11

這取決於你想要如何管理數據。這兩個選項(以及更多)都是可行的:

  • 如果您想填充一次並保存數據(即使應用程序被殺死),請使用SharedPreferences
  • 如果是易失數據,必須在其他時間(即數日後)重新輸入數據,則使用onSavedInstanceState
  • 如果你想保持多個數據集在同一臺設備上,然後使用的東西應該永遠記住,不管手機是關閉的SQLiteDatabase
+0

一旦有人按照我設計的數據輸入路徑(總是在應用程序的一個實例中),他們會通過電子郵件發送數據,只要他們通過電子郵件發送,我不再需要任何數據記錄,因此我相信onsavedinstancestate狀態會工作謝謝! – SLYtiger 2011-05-05 17:26:30

7

SharedPreferences

  • 使用(例如,在您的應用程序的設置屏幕選擇設置

onSavedInstanceState

  • 用於記憶有關活動當前狀態的內容,例如屏幕上當前選定的選項卡。這允許您在輪換之後重新創建相同的狀態,或者由於內存不足而導致應用程序死亡。
  • 保存在onSaveInstanceState的事情將在重啓後忘記,並開始活動的新實例時,他們不會通過,所以他們只爲記住活動

onRetainNonConfigurationInstance

的狀態
  • 使用此功能可以存儲需要很長時間才能加載的對象,以便在手機旋轉時不必再次加載它們。
+0

一旦有人按照我設計的數據輸入路徑(總是在應用程序的一個實例中)發送數據,只要他們通過電子郵件發送數據,我不再需要任何數據記錄,因此我相信onsavedinstance狀態將起作用謝謝! – SLYtiger 2011-05-06 05:41:27