Как вы видели, «жизненные циклы» в iOS разные. Один из способов, который помогает, - это использовать жизненные циклы приложения и связать их с Page
событиями (или командами, если необходимо).
В своем подклассе Application добавьте пару открытых EventHandlers и свяжите их с OnResume (и OnSleep, если необходимо)
public partial class App : Application
{
public EventHandler OnResumeHandler;
public EventHandler OnSleepHandler;
public App()
{
InitializeComponent();
MainPage = new MyPage();
}
protected override void OnSleep()
{
OnSleepHandler?.Invoke(null, new EventArgs());
}
protected override void OnResume()
{
OnResumeHandler?.Invoke(null, new EventArgs());
}
}
Теперь в вашем подклассе ContentPage
добавьте обработчик, который отслеживает, когда эта страница возвращается из фона, вроде обработчика "OnAppearing after OnPause" ...
void Handle_OnResumeHandler(object sender, EventArgs e)
{
Console.WriteLine("OnPauseResumeWithPage");
}
protected override void OnAppearing()
{
(App.Current as App).OnResumeHandler += Handle_OnResumeHandler;
base.OnAppearing();
}
protected override void OnDisappearing()
{
(App.Current as App).OnResumeHandler -= Handle_OnResumeHandler;
base.OnDisappearing();
}