2

C# で Windows Phone 8 アプリケーションを開発しています。

アプリケーションは、最初の使用時にのみサーバーからいくつかのリソースをロードする必要があります。これらのリソースは後でローカルにキャッシュされるため、後で毎回ロードする必要はありません。

基本的に、アプリの準備が整うまでユーザーを「アプリケーションの準備中」画面にリダイレクトしたいのですが、最初の移動のみです。

現在、私は毎回ユーザーを「準備中」ページに送り、リソースが利用可能な場合はリダイレクトしますが、問題はイベントの前に準備ができていないNavigationServiceLoadedため、ユーザーは実際に「準備中」ページを毎回見ることです. これは私の現在のコードです:

Loaded += async (x, args) =>
    {
       await Task.WhenAll(new List<Task> {fetchFirstResource,fetchSecondResource});
       NavigationService.Navigate(new Uri("/Views/RealPage.xaml", UriKind.Relative));
    };

tl;dr;

実行時にアプリケーションの開始ページを変更するにはどうすればよいですか? あるいは、load イベントの前に別の画面にリダイレクトするにはどうすればよいですか?

読んで詳細な回答をいただければ幸いです。この問題に対する別のアプローチも歓迎します

4

2 に答える 2

0

これを行う 1 つの方法は、必要なデータを含む既存のローカル ファイルをチェックすることです。

using (var store = IsolatedStorageFile.GetUserStoreForApplication()) {
    if (store.FileExists("cache.dat")) {
        // Deserialize cache.dat and load real page.
    } else {
        // Load preparing page, begin building cache, serialize cache for next run.
    }
}

StartupURI の代わりに、起動シーケンスのコード内ナビゲーションでこれを行うことができます。

于 2013-09-05T07:39:37.770 に答える