From aab10a4fb220af27b108238fab3a7a73eb82c00e Mon Sep 17 00:00:00 2001 From: Amr Date: Wed, 6 Nov 2019 11:41:09 +0200 Subject: [PATCH 1/2] Fixes NRE when app put to sleep when MainPage isn't set --- Source/Xamarin/Prism.Forms/PrismApplicationBase.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs b/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs index 63427d1d1..30aba4716 100644 --- a/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs +++ b/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs @@ -230,12 +230,14 @@ protected virtual void InitializeModules() protected override void OnResume() { + if (MainPage == null) return; var page = PageUtilities.GetCurrentPage(MainPage); PageUtilities.InvokeViewAndViewModelAction(page, x => x.OnResume()); } protected override void OnSleep() { + if (MainPage == null) return; var page = PageUtilities.GetCurrentPage(MainPage); PageUtilities.InvokeViewAndViewModelAction(page, x => x.OnSleep()); } From c9a11d998e17c7f3f2d4eb57749064690bd9aea2 Mon Sep 17 00:00:00 2001 From: Amr Date: Wed, 6 Nov 2019 11:44:40 +0200 Subject: [PATCH 2/2] Update PrismApplicationBase.cs --- .../Xamarin/Prism.Forms/PrismApplicationBase.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs b/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs index 30aba4716..555213db5 100644 --- a/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs +++ b/Source/Xamarin/Prism.Forms/PrismApplicationBase.cs @@ -230,16 +230,20 @@ protected virtual void InitializeModules() protected override void OnResume() { - if (MainPage == null) return; - var page = PageUtilities.GetCurrentPage(MainPage); - PageUtilities.InvokeViewAndViewModelAction(page, x => x.OnResume()); + if (MainPage != null) + { + var page = PageUtilities.GetCurrentPage(MainPage); + PageUtilities.InvokeViewAndViewModelAction(page, x => x.OnResume()); + } } protected override void OnSleep() { - if (MainPage == null) return; - var page = PageUtilities.GetCurrentPage(MainPage); - PageUtilities.InvokeViewAndViewModelAction(page, x => x.OnSleep()); + if (MainPage != null) + { + var page = PageUtilities.GetCurrentPage(MainPage); + PageUtilities.InvokeViewAndViewModelAction(page, x => x.OnSleep()); + } } private void PrismApplicationBase_ModalPopping(object sender, ModalPoppingEventArgs e)