2016-05-12 9 views
0

私はWindows phoneでアプリケーションを開発中です。(Windows phone 10)Handleアプリケーションの状態

なんらかの理由で、アプリケーションの状態を処理する必要があります(バックグラウンドに移動し、フォアグラウンドに入る)。 App.xaml.csでイベントの一時停止と再開を処理しましたが、正常に動作せず、OnSuspendingとOnResumingに達しません。私のソースコードを確認し、それらのイベントをどのように処理するかを教えてください。ここで

は私のコードです:

public App() 
    { 
     Microsoft.ApplicationInsights.WindowsAppInitializer.InitializeAsync(
      Microsoft.ApplicationInsights.WindowsCollectors.Metadata | 
      Microsoft.ApplicationInsights.WindowsCollectors.Session); 
     this.InitializeComponent(); 
     this.Suspending += OnSuspending; 
     Application.Current.Suspending += new SuspendingEventHandler(OnSuspending); 
     Application.Current.Resuming += new EventHandler<Object>(OnResuming); 

    } 

    private void OnSuspending(Object sender, Windows.ApplicationModel.SuspendingEventArgs e) 
    { 
     var deferral = e.SuspendingOperation.GetDeferral(); 
     //TODO: Save application state and stop any background activity 
     deferral.Complete(); 


    } 
    private void OnResuming(object sender, object e) 
    { 
     // do some thing 
    } 
+0

あなたがそれをデバッグしようとした場合、通常、あなたがこれらのイベントを発生しません - あなたは* *ライフサイクル]タブを使用する必要があります - [この質問を見る](http://stackoverflow.com/q/24103101/2681948) – Romasz

答えて

1

あなたはそれはあなたが状態をサスペンドとシャットダウン、再開サスペンドの間を選択することができますのVisual Studio 2015のライフサイクルイベントのドロップダウンを使用する必要があります。

デバッグでアプリケーションを実行するたびに、それ自体がサスペンド状態になることはありません。

いくつかのドキュメントここに:https://blogs.windows.com/buildingapps/2016/04/28/the-lifecycle-of-a-uwp-app/

0

あなたは二回、イベントを中止する

this.Suspending += OnSuspending; 
Application.Current.Suspending += new SuspendingEventHandler(OnSuspending); 

をサブスクライブしているより良いイベント

private void App_Resuming(object sender, object e) 
    { 
     // TODO 
    } 
を再開追加
this.Suspending += OnSuspending; 
this.Resuming += App_Resuming; 

も同じように古典的な

を残します210

あなたがデバッグするかは、それがこの資料に記載されているように再開イベントが動作する/一時停止です:
How to trigger suspend, resume, and background events for Windows Store apps in Visual Studio

関連する問題