1

WP8 アプリに問題があります。これは、ViewModel の作成に MVVM ライト ライブラリを使用し、メッセージによるページ ナビゲーションにも使用されます。

現在、MainPage の OnNavigatedTo メソッドに問題があります。アプリを初めて起動すると、一度呼び出されます。閉じるボタンで閉じて再度開くと、一度だけ呼び出されます。MainPage ViewModel のコンストラクターも 1 回だけ呼び出されます。

アプリケーションをバックグラウンドで開いて、[開始] または [検索] ボタンで終了すると、OnNavigatedTo が 2 回呼び出されます。コンストラクターはもう呼び出されません。

私の問題は、OnNavigatedTo でサーバーとの同期を初期化していることです。これは 1 回だけ実行する必要がありますが、OnNavigatedTo が 2 回呼び出されるため、2 回呼び出されることがあります。WP8 アプリ モデルに関する私の理解では、ページに入ったときに OnNavigatedTo が 1 回だけ呼び出されるということでした。私はこの振る舞いを理解できず、気が狂いそうになっています。

私は FastAppResume を使用しておらず、通常の動作に戻したいだけです。アドバイスをいただければ幸いです。ページを 2 回読み込んだ可能性のあるすべての呼び出しを確認しましたが、これは役に立ちませんでした。この問題に加えて、私のアプリは正常に動作します。それ以外の場合は、一度に 1 つだけ実行できる非同期タスクを作成するソリューションを探しています。

4

1 に答える 1

0

メッセージが複数回登録されていたためです。

コードを表示せずにこれを修正する最善の方法は、Messenger.Default.Register を ViewModel コンストラクターに追加して、1 回だけ呼び出されるようにすることです。

于 2013-06-04T09:58:05.483 に答える