2016-11-18 70 views
-6

我正在構建相對簡單的應用程序/遊戲,其中包含任務和子任務。用戶的進展應該被保存。用戶也有少量的設置。存儲應用程序數據的位置?

目前,應用程序未連接到外部服務,但未來的目標是使用Facebook或類似的用戶註冊功能,並添加一項功能與其他用戶共享進度/成就。

我是新開發的應用程序,我不知道選擇哪種數據存儲方法。如果我沒有弄錯有關鍵值集,保存在文件和數據庫選項中。

爲了快速完成任務,甚至可能發佈1.0版本,我想用最簡單的解決方案。所以,我想知道是否有選擇鍵值或保存在文件選項中的缺點,以及切換到基於數據庫的保存有多困難?或者我應該從一開始就使用數據庫?

我向你致敬,花時間回答這個問題!

-Timo

+1

主要基於意見...你有沒有檢查官方Android指南中的「存儲選項」主題? – Selvin

+0

'共享首選項'是您的不錯選擇。 – AJay

+0

謝謝AJay!我會嘗試的。 –

回答

1

我向你推薦SharedPreferences。這是一個Android簡單類,它將數據存儲在鍵值集中。

下面是代碼:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

這初始化SharedPreferences。如果你想要寫/更改值,這樣做:

SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt("KEY_TO_VALUE", 123); 
editor.commit(); 

你也可以把在那裏的其他類型的值,但比你需要打電話putStringputBoolean甚至其他類型。

要讀取值做到這一點:

int a = prefs.getInt("KEY_TO_VALUE", 0); 

該代碼需要像往常一樣將參數的重點和第二個參數的默認值。

對於你的另一個提示是,如果你想用一個簡單的UI在一個普通的應用程序中使用它,那麼有一種叫做PreferenceScreen的東西。

+0

謝謝!我會放棄這一點。 –

1

最簡單的方法是使用SharedPreferences。對於複雜的事情,您需要使用SQLite(內置)或一些ORM,如RealmGreenDao。對於在線分數分享,您需要使用上述和服務器之一。 Facebook允許您爲每個用戶存儲一個整數,有時這些整數不夠用,並且還需要存儲該整數,以便向用戶請求額外許可(publish_actions)。希望這會有所幫助。

+0

謝謝!這些是有用的tps。 –

相關問題