diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2017-10-11 03:12:43 -0600 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-10-11 23:44:27 +0100 |
commit | 56f674ac1d3ac580dfc13a85dfeef8d6d4069037 (patch) | |
tree | dfe5aebf01152f20a589b7834165dd5dc372dc6e /Xamarin.Forms.Platform.Android/AppCompat | |
parent | 52357e94466b6fcc4702ad3da04995c82be71393 (diff) | |
download | xamarin-forms-56f674ac1d3ac580dfc13a85dfeef8d6d4069037.tar.gz xamarin-forms-56f674ac1d3ac580dfc13a85dfeef8d6d4069037.tar.bz2 xamarin-forms-56f674ac1d3ac580dfc13a85dfeef8d6d4069037.zip |
Checking IsDestroyed before using FragmentManager in Dispose() (#1194)
Diffstat (limited to 'Xamarin.Forms.Platform.Android/AppCompat')
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/MasterDetailContainer.cs | 2 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs | 7 |
2 files changed, 4 insertions, 5 deletions
diff --git a/Xamarin.Forms.Platform.Android/AppCompat/MasterDetailContainer.cs b/Xamarin.Forms.Platform.Android/AppCompat/MasterDetailContainer.cs index faaf7462..8c7059d3 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/MasterDetailContainer.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/MasterDetailContainer.cs @@ -138,7 +138,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat if (disposing) { - if (_currentFragment != null) + if (_currentFragment != null && !FragmentManager.IsDestroyed) { FragmentTransaction transaction = FragmentManager.BeginTransaction(); transaction.DisallowAddToBackStack(); diff --git a/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs b/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs index 09c5c49b..e262c605 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs @@ -120,14 +120,13 @@ namespace Xamarin.Forms.Platform.Android.AppCompat { _disposed = true; - var activity = (FormsAppCompatActivity)Context; - // API only exists on newer android YAY if ((int)Build.VERSION.SdkInt >= 17) { - if (!activity.IsDestroyed) + FragmentManager fm = FragmentManager; + + if (!fm.IsDestroyed) { - FragmentManager fm = FragmentManager; FragmentTransaction trans = fm.BeginTransaction(); foreach (Fragment fragment in _fragmentStack) trans.Remove(fragment); |