2011-10-24 38 views
4

我正在開發一個項目,我正在創建一個靜態的class's object。所以當我switch off device at that time all the static objects are cleared所以我想存儲到shared preference。所以我可以再次使用它。是否有可能將其保存爲共享偏好? 或重新啓動設備後使用該對象的任何其他可能性?是否有可能在Shared Preference中存儲Class的靜態對象?

回答

4

您只能保存原始數據類型,如float,int,string,字符串或布爾值集合。您可序列化的對象的字節流,然後從字節流reacreate他們,你可以看看這個Answer也是這個Answer

+0

正如Lalit所說,你可以使用序列化對象。這裏的鏈接可能會幫助你.http://stackoverflow.com/questions/1243181/how-to-store-object-in-sqlite-database – Hitendra

2

無法保存特定類型的對象在SharedPreferences。根據SharedPreferences.Editor接口,您只能保存原始數據類型,如:浮點數,整數,字符串,字符串集或布爾值。

-1

您CA不直接存儲類對象優先(除內置字符串,布爾值,整數,等...)

,但你可以從你的偏好靜態類存儲的變量。

例如

當您的設備得到關掉你必須靜態類的所有值複製到偏好

,並在開機的時間內完成,你可以檢索偏好的所有值設爲您的靜態對象或在重新創建靜態對象時,可以從首選項中將值提取到靜態對象。

Boot complete receiver

Shut down receiver

1

你當然可以存儲/恢復靜態類SharedPreferences的狀態(相序列化),但你需要一個應用程序/活動方面要做到這一點,意味着你是將靜態類綁定到非靜態(應用程序/活動)類的實例。

這在設計方面有點奇怪 - 您的Static類會突然讓您的Activity直接創建(實例化),加載(恢復)並保存(存儲)更多意義?

否則存在訪問它的可能性,當它的狀態是廢話 - 這是靜態對象的性質?

相關問題