diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2016-07-18 17:30:41 -0600 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-07-18 16:30:41 -0700 |
commit | be9f626c37949cc56c5f6901dac93093f3016fbf (patch) | |
tree | 69cef97f14be15726b694bce14c21eb023b1f7dc /Xamarin.Forms.Platform.Android | |
parent | d52f110d78cc66441c32520acedc752cd949c0ac (diff) | |
download | xamarin-forms-be9f626c37949cc56c5f6901dac93093f3016fbf.tar.gz xamarin-forms-be9f626c37949cc56c5f6901dac93093f3016fbf.tar.bz2 xamarin-forms-be9f626c37949cc56c5f6901dac93093f3016fbf.zip |
Prevent FormsAppCompatActivity from loading fragments we don't use on restart (#246)
* Prevent FormsAppCompatActivity from loading fragments we don't use on restart
* Adding issues lost in merge
Diffstat (limited to 'Xamarin.Forms.Platform.Android')
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs b/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs index 6bd7df2b..b6736df2 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs @@ -44,6 +44,9 @@ namespace Xamarin.Forms.Platform.Android int _statusBarHeight = -1; global::Android.Views.View _statusBarUnderlay; + // Override this if you want to handle the default Android behavior of restoring fragments on an application restart + protected virtual bool AllowFragmentRestore => false; + protected FormsAppCompatActivity() { _previousState = AndroidApplicationLifecycleState.Uninitialized; @@ -139,8 +142,17 @@ namespace Xamarin.Forms.Platform.Android callback(resultCode, data); } + protected override void OnCreate(Bundle savedInstanceState) { + if (!AllowFragmentRestore) + { + // Remove the automatically persisted fragment structure; we don't need them + // because we're rebuilding everything from scratch. This saves a bit of memory + // and prevents loading errors from child fragment managers + savedInstanceState?.Remove("android:support:fragments"); + } + base.OnCreate(savedInstanceState); AToolbar bar; |