summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android
diff options
context:
space:
mode:
authorE.Z. Hart <hartez@users.noreply.github.com>2016-07-18 17:30:41 -0600
committerJason Smith <jason.smith@xamarin.com>2016-07-18 16:30:41 -0700
commitbe9f626c37949cc56c5f6901dac93093f3016fbf (patch)
tree69cef97f14be15726b694bce14c21eb023b1f7dc /Xamarin.Forms.Platform.Android
parentd52f110d78cc66441c32520acedc752cd949c0ac (diff)
downloadxamarin-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.cs12
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;