0

Windows Phone 7/8 アプリケーションの Application Closing/Deactivated メソッドに MessageBox が表示されています。アプリが閉じているためにアクティブタイマーが無効になっていることをユーザーに警告するために使用されます。アプリの終了/非アクティブ化イベントは、これに最適です。なぜなら、すべてのアプリケーション ページにロジックを配置することは致命的であり、ナビゲーションのためのページとパスが多すぎるためです。これは問題なく動作します - WP7 ではメッセージ ボックスに [OK] が表示されます。

また、 WP8 の API の重大な変更についても知っています。そこには、ActivatedおよびLaunchingのMessageBox.Showが例外を引き起こすことが明確に述べられています。

問題は、WP8 では、アプリを閉じるときにメッセージ ボックスが表示されないことです。コードは例外なく実行されますが、メッセージは表示されません。

PS MS WP Devフォーラムでこれを尋ねましたが、明らかに誰も知りませんでした。

4

2 に答える 2

1

msgBox コードをアプリの終了イベントからメイン ページの分離コードに移動します。on back key press イベントをオーバーライドし、そこにコードを配置します。これは、7.x で行われた方法です。

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
        {
            if (MessageBox.Show("Do you want to exit XXXXX?", "Application Closing", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
            {
                // Cancel default navigation
                e.Cancel = true;
            }
        }

参考までに-WP8では、MsgBox Showを新しいスレッドにディスパッチする必要があるようです。

これにより、イベント モデルでアプリが実際に閉じ始める前に、ユーザーにプロンプ​​トが表示されます。ユーザーが戻るキーの押下を受け入れた場合は許可され、それ以外の場合はキャンセルされます。ホームボタンの押下をオーバーライドすることは許可されていません。常にすぐにホーム画面に移動する必要があります。バックグラウンド エージェントを調べて、一時停止/再開を通じてタイマー コードを永続化する必要があります。

于 2012-11-16T18:55:29.983 に答える