2017-12-20 23 views
0

Xamarin.Forms(PCL)アプリが終了しているときにコードを実行するにはどうすればよいですか? (WindowsのApplication.ApplicationExitイベントに似ています)アプリの終了を検出する

アプリケーションが終了する前に実行する必要があるアクションがあり、アプリケーションがユーザーまたはリソースを必要とするデバイスによって終了される可能性があります。

答えて

2

::アプリケーションの終了方法はありません

注こと

はあなたの ApplicationOnSleep機能を無効にすることができ、バックグラウンド状態を検出します。通常 の状況(クラッシュではない)では、 コードへの追加の通知なしで、アプリケーションの終了がOnSleep状態の から発生します。あなたが各プラットフォーム上の各同等にフック OnSleep方法を見つけるだろう App.xaml.csあなたに

protected override void OnSleep() 
{ 
    // TODO write code when your app goes to bed 
} 

しかし、実際にアプリケーションが閉じられているすべてのシナリオでこれが呼び出されるという保証はありません。したがって、可能であれば、おそらく代替手段を見つけるべきです。

+0

ありがとうございました。 (まだ受け入れられません、わずか7分です) – ispiro

+0

ユーザが実行中のアプリケーションのリストからアプリケーションを閉じるためにXをタップしたときに 'onSleep'が発生するかどうか知りませんか? (またはiOS上でスワイプする) – ispiro

+0

引用文に記載されているように、通常の状況下では 'OnSleep'を発生させる必要があります。だから、あなたのコードで何が起こっているかを見るために、デバッグ出力を追加することで、これを調べるのは面倒なことかもしれません。 –

1

モバイルアプリケーションでは、プロセスが終了するとアプリケーションの終了が検出されず、アプリケーションがバックグラウンドになると検出されます(アプリケーションスワイプがバックグラウンドとして検出されても「強制終了」のみがトラップされません)。 Xamarin.Forms lifecycle documentationから

protected override void OnSleep() 
{ 
    Debug.WriteLine ("OnSleep"); 
} 
関連する問題