スポンサーサイト

--.--.--.--.--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NewsReaderテンプレートのバグと修正

2012.09.15.Sat.13:21
Microsoftでは現在、Windows8アプリ開発体験テンプレートが公開されています。

この中に所謂RSSリーダーのテンプレートとして、
NewsReader テンプレート XAML/C# 用 Version 1.0があります。
このテンプレートを使ってWindows8アプリを作っていたところ、一つバグを発見しました。


○オフラインモード時に検索を繰り返すとグループがどんどん増える


再現手順:
1.無線LANをOFFにするなどしてインターネットに接続できない状態する
2.チャームの検索フォームからNewsReaderアプリを選択し、何も入力せず検索を行う
(ALLの記事数を覚えておく)
3.そのまま、もう一度検索を行う

結果:
Allの記事数が検索するたびに増える

NewsReaderBug1.png

  ↓

NewsReaderBug1.png


Allの件数だけ増えているのはフィードのグループが増えているからです。

NewsReaderテンプレートではアプリ起動時にインターネットに接続できない場合、前回起動したときのキャッシュからデータを作成し、オフライン時でも閲覧できる機能があります。しかし、キャッシュからデータを作成する際に前のデータを消さずに追加しているため、検索するたびにどんどん増えていくわけです。

修正するには、NewsDataSource.csのLoadData関数を下記のように修正します。


// オフライン状態で起動した際に、永続化済みのフィードから読み取る
// asyncキーワード、戻り値 を追加 by arai
public static async Task LoadData()
{
//***** ↓の行を追加 *****//
_NewsDataSource._allGroups.Clear(); // いったんすべてのデータをクリア

// 実装コード by arai
var boolResult = await SerializedHelper.LoadDataAsync(_NewsDataSource._allGroups);

return boolResult;
}


とりあえずの修正は↑でOKです。
読み込み済みの場合はLoadData()を呼ばないとかでも良いと思います。

なお、この問題はMicrosoftさんのほうでも認識されているようで、修正版が出るそうです。
スポンサーサイト
コメント

管理者のみに表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。