2012-01-26 35 views

回答

1

如果您嘗試使用SharedPreferences進行任何複雜的操作,很快就會變得非常繁瑣;你只能存儲原始類型,它是一個簡單的鍵/值系統。所以,本身沒有缺點,但SharedPreferences是爲簡單數據的輕量級存儲而設計的。

+0

問題:如果我要說我會在字符串中加載500kb的值,會導致應用程序出現問題嗎? – wesdfgfgd

+0

不一定,但正如我所說的,你不應該使用sharedpreferences來處理大量的東西......這就是你尖叫你需要使用數據庫或其他方式的持久化數據。 – LuxuryMode

+0

非常感謝,我幫了我很多。 – wesdfgfgd

1

您應該只使用SharedPreferences存儲與用戶配置相關的小數據位。它只能存儲基本的數據類型,所以如果你有更復雜的信息位,你應該切換到另一個機制。

SharedPreferences的一個方便功能是您可以在使用它的兩個應用程序之間共享數據;所以如果您有兩個必須共享用戶偏好的應用程序,使用SharedPreferences可能是一個方便的選擇。

另外,您不應該在SharedPreferences中存儲大量數據;這不是爲了這個。相反,使用SQLite數據庫(1)來獲得更強大的解決方案。

(1)http://developer.android.com/reference/android/database/sqlite/package-summary.html

+0

謝謝你非常翔實。 – wesdfgfgd

1

共享偏好用於快速訪問,併爲與應用程序一起快速存取內存加載...因此,如果您嘗試存儲大量的共享偏好數據...它會導致您的應用程序的關鍵內存更多的使用(我猜如果太大以至於無法在內存中存儲某些交換會導致性能影響)。更好地使用DB /文件系統/ Web服務器獲取大量數據... 。通過存儲應用程序經常訪問的少量信息,您實際上可以提高應用程序的性能。

1

用戶可以隨時清除存儲在共享首選項中的數據。這是共享偏好的主要缺點。

0

要考慮的第一點是共享首選項是非易失性數據。所以它們作爲應用程序數據存儲爲鍵值對。因此,在您的應用中廣泛使用它們可能會變得很複雜。而且,爲了處理吞吐量,它不會影響您的應用速度,因爲它們存儲在/作爲輔助存儲。