19

私はWindowsPhone8アプリを作成している最中なので、非常に人気のある3%の市場シェアを獲得でき、アプリケーション内でユーザー設定を維持するのに苦労しています。

私は最初にこのブログに出くわしました。このブログでは、まさにこの種のことを行うことを目的としたWindows.Storage名前空間の基本について説明しています。わーい!

ただし、作成者が実際に自分のコードを実行ApplicationData.Current.LocalSettingsしたことはないと思います。そうしないと、2番目に呼び出すと、NotImplementedException例外が発生することがわかります。 MSDNに行きます!

これにより、このAPIがWindows Phone 8に実装されていないことがはっきりとわかります。「このAPIは実装されておらず、呼び出されると例外がスローされます」という結論に達しました。-それは素晴らしいことです。

したがって、他にも同様のAPIがいくつかあるかもしれません。もう少しグーグルした後、私はこのブログに出くわしました。これは「Windows8アプリ-コツを知っておく必要があります!」と呼ばれています。これは公式に見えます!永続的および一時的なストレージ、ローミングストレージなど、あらゆる種類の非常に見栄えの良い永続化APIを網羅しています。

しかし、何を推測してください:、、、RoamingFolder- WindowsPhone8には実装されていません。RoamingSettingsTemporaryFolderLocalSettings

これらのやや重要な機能を実装することは、彼らの心を滑らせるだけでしたか?基本的なアプリ設定を保存するためにローカルSQLデータベースを作成することになっていますか、それとも私が見つけられない単純なものがありますか?

4

2 に答える 2

20

あはは!これを理解しました。Windows Phone 7 の API ドキュメントを掘り下げたところ、従来の API は実際には Windows Phone 8 でも動作します。

public static void Session_PersistSession(string ticket)
{
   if (IsolatedStorageSettings.ApplicationSettings.Contains("SessionTicket"))
   {
      IsolatedStorageSettings.ApplicationSettings["SessionTicket"] = ticket;
   }
   else
   {
      IsolatedStorageSettings.ApplicationSettings.Add("SessionTicket", ticket);
   }

   IsolatedStorageSettings.ApplicationSettings.Save();
}

public static string Session_LoadSession()
{
   string ticket;
   if (IsolatedStorageSettings.ApplicationSettings.TryGetValue<String>("SessionTicket", out ticket))
   {
      return ticket;
   }

   return null;
}
于 2012-11-26T05:17:55.717 に答える
3

ここにいくつかのオプションがあります....

  1. LocalFolderがサポートされているため、そこにあるファイルに必要な状態をシリアル化できます。
  2. IsolatedStorageSettingsクラス、具体的にはApplicationSettingsプロパティを確認してください

また、これはもう少しコンテキストを提供する可能性があります: Windows Phone のアプリの状態を保持および復元する方法

于 2012-11-26T05:22:35.927 に答える