問題
開發一個行動裝置應用程式,一定會用到這樣的需求,那就是需要把應用程式執行的某些狀態,儲存到手機永久儲存體中,等到下次應用程式再度啟動時候,需要把當時的狀態從手機中的永久儲存體讀取出來,並且重新記錄到應用程式內的 .NET 物件內。
解答
在 Xamarin.Fomrs 應用程式中,有個 Application 類別有個靜態物件,表示 Xamarin.Forms 這個應用程式的當時的應用程式物件,您可以透過
Application.Current
取得正在執行的 Application 類別物件。
在 Application 實例物件中,有個
Properties
屬性,這個屬性的型別是 IDictionary<string, object>
,因此,您可以將任何型態的物件值儲存到 Application.Current.Properties
這個實例中。一旦,您將系統內的某個物件加入到 Application.Current.Properties
這個實例內,系統會自動將其儲存到行動裝置內的永久儲存體內。
不過,您需要特別注意到一件事情,
Properties
這個字典型別,僅僅能夠序列化基本類型(Primitive Type)的物件,所以,不太建議使用 Properties
來儲存太複雜的物件內容。