Xamarin.FormsでOnSleepとOnResumeの呼ばれるタイミングをAndroidとiOSで似た感じにしたい
Xamarin.FromsのPCLプロジェクトのApplicationクラスにはOnSleep/OnResumeという仮想関数が用意されています。
Working with the App Lifecycle - Xamarin
OnSleep - Called each time the application goes to the background.
OnResume - Called when the application is resumed, after being sent to the background.
となっているわけですが、AndroidとiOSで呼ばれるタイミングが全然違ったりします。
Androidでは画面上部から設定画面をプルダウンしたりしてもOnSleepは呼ばれませんが、iOSでは画面上部、画面下部から設定画面を引っ張ったりするだけでOnSleepが呼ばれたりします。
なのでタイミングが違いすぎてあまり役に立たなかったりします。
iOSをAndroidに合わせたい場合には以下のようにすると一応合わせることができます。
一応と書いてあるのはAppDelegate.csのOnResignActivationの基底をコールしないことによる副作用が見えないためです。
現時点で副作用らしい副作用は出ていませんが不安である場合には各プラットフォームのMainActivity/AppDelegateにて動作を実装してOnSleep/OnResumeを使用しないほうが良いかもしれません。