2011-07-27 54 views
3

在Windows Phone 7 - > IsolatedStorageSettings類中,我們有兩個函數Add()和Save()。根據我的觀點,兩者在保存孤立存儲中的關鍵值對時的意義相同。我的問題這兩個函數有什麼區別。windows phone 7 + IsolatedStorageSettings +添加和保存功能

爲了測試Application_Deactivated事件和Application_Closing事件中的App.xaml.cs中做了什麼,我在IsolatedStorageSettings中添加了一個鍵值對,而無需調用save函數。

在Application_Launched和Application_Activated事件上我正在檢索相同的鍵值對,並且我得到了上面添加的鍵的相同值。

因此,沒有實際調用IsolatedStorageSettings的Save函數,我能夠檢索這些值。

回答

8

.Save()實際上將隔離存儲設置實例(如ApplicationSettings)持久存儲到媒體(例如電話存儲)。

當您的應用程序被tombestoned(_Deactivated)或關閉(_Closed)時,這會自動完成。這就是爲什麼你甚至沒有調用保存就能獲得相同的值。

.Add()方法只是添加一個新的條目到你的設置字典中。如果您的設置未保存(通常應用程序意外退出),此更改可能會丟失。

從MSDN:

「寫入IsolatedStorageSettings對象中的數據保存時使用類的 應用程序時關閉 用戶關閉Web瀏覽器中可能出現這種情況,刷新頁面,或從 頁面瀏覽,如果您希望您的應用程序立即寫入獨立存儲 ,則可以在應用程序代碼中調用Save方法。

希望這回答你的問題

+0

如果意外退出==崩潰 –

+0

我試圖用例子來測試這個你給了,就按一下按鈕事件我附加值鍵,然後寫了下面的代碼串J =「 ABC「; int i = j.IndexOf(「a」,10);意思是異常,然後再次嘗試讀取App_Launch上的鍵的值,並且我得到了在按鈕單擊事件 – pratik

+0

中添加的新值,該異常必須未處理,您需要確保App.xaml.cs中沒有代碼處理異常。還要產生異常嘗試:「拋出新的異常()」 –