WP8 アプリを作成していますが、アプリが非アクティブ化または閉じられたときにデータを保存したいと考えています。
新しい WinRT API を試しましたが、アプリが非アクティブ化されている間は機能しません :|
コード:
public async Task CacheData()
{
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
string data = "Hello!";
///WinRT not Working !!!
// Get a reference to the Local Folder
// Create the file in the local folder, or if it already exists, just replace it
StorageFile storageFileIsolated = await localFolder.CreateFileAsync("Data.data", CreationCollisionOption.ReplaceExisting);
Stream writeStream = await storageFileIsolated.OpenStreamForWriteAsync();
using (StreamWriter writer = new StreamWriter(writeStream))
{
await writer.WriteAsync(data);
}
}
}
しかし、古いAPIでうまく動作します
string data = "Hello!";
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream rawStream = isf.CreateFile("Data.store"))
{
StreamWriter writer = new StreamWriter(rawStream);
writer.WriteLine(data); // save the message
writer.Close();
}
}
何が問題なのかわからない :| !!!
このコードでテストしました
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
ViewModel.CacheExchangeRates().Wait();
System.Diagnostics.Debug.WriteLine("deactivated !!!!!");
}
非アクティブに印刷されたことはありません!!!