2014-09-05 59 views
0

我最近進入了Android開發,對於savedInstanceState是如何工作的,我有點困惑。假設我正在製作遊戲,並且我想保存玩家的分數,我能否在onSavedInstanceState()期間將它保存到savedInstanceState Bundle中,並始終能夠從中檢索分數,無論設備是關閉還是用戶只是完全關閉了應用程序?如何在Android中恢復數據?

+0

如果你的數據很少使用shared pref – KOTIOS 2014-09-05 01:27:14

回答

0

工作,那會暫時的。

數據保存在內存中,直到應用程序被活着或被操作系統殺死(缺少內存),換句話說,如果您強制關閉應用程序(關閉設備或關閉應用程序),則不使用onSaveInstanceState。

但是,如果你想永久存儲數據,你將不得不使用SharedPreferences和SQLite數據庫。

0

我不知道我完全理解你,但讓我接你,然後如果你的意思

的savedInstanceState無關與遊戲存檔,保存遊戲通常要告訴我,當如果用戶通過按home鍵關閉遊戲,例如你會自動爲他保存遊戲,你應該通過覆蓋其中一個Activity方法來實現,onPause()是你最好的選擇,因爲即使用戶重新啓動他的手機,你也想保留這個保存。

看到了活動的生命週期: http://developer.android.com/training/basics/activity-lifecycle/index.html

在另一方面,savedInstanceState是使用Android的臨時保存活性的機制,如果用戶又回到了比賽之前,直接與活動完全變被操作系統殺死,你可以恢復活動的狀態,而不是從開始加載遊戲並進入開始菜單。

這個原則通常不僅僅在遊戲中。

總結它:savedInstanceState是一種方法來恢復您的活動形式的內存之前,它被殺死,而不是再次加載它。這不是一個辦法premenantlly保存設備

上的數據,如果這是你想要的,那麼你可以詢問如何。如果你的問題是捆綁對象是多少保持mememory與savedInstanceState