--- /dev/null
+using Xamarin.Forms.CustomAttributes;
+using Xamarin.Forms.Internals;
+
+#if UITEST
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+namespace Xamarin.Forms.Controls
+{
+ [Preserve(AllMembers = true)]
+ [Issue(IssueTracker.Bugzilla, 46494, "Hardware/Software back button from MainPage of type MasterDetail causes crash 'java.lang.IllegalStateException: Activity has been destroyed'", PlatformAffected.Android)]
+ public class Bugzilla46494 : TestMasterDetailPage
+ {
+ protected override void Init()
+ {
+ Master = new ContentPage { Title = "Master", BackgroundColor = Color.Blue };
+ Detail = new NavigationPage(
+ new ContentPage
+ {
+ Title = "Detail",
+ BackgroundColor = Color.Red,
+ Content = new ContentView
+ {
+ Content = new Label
+ {
+ Text = "Hit Back button to destroy Activity. Disposing Fragment should not run into a race condition with Activity destroy.",
+ HorizontalTextAlignment = TextAlignment.Center,
+ VerticalTextAlignment = TextAlignment.Center
+ }
+ }
+ }
+ );
+ }
+ }
+}
\ No newline at end of file
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44044.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44338.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla45743.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Bugzilla46494.cs" />
<Compile Include="$(MSBuildThisFileDirectory)CarouselAsync.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34561.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34727.cs" />
protected override void OnDestroy()
{
- // may never be called
- base.OnDestroy();
-
MessagingCenter.Unsubscribe<Page, AlertArguments>(this, Page.AlertSignalName);
MessagingCenter.Unsubscribe<Page, bool>(this, Page.BusySetSignalName);
MessagingCenter.Unsubscribe<Page, ActionSheetArguments>(this, Page.ActionSheetSignalName);
- if (_platform != null)
- _platform.Dispose();
+ _platform?.Dispose();
+
+ // call at the end to avoid race conditions with Platform dispose
+ base.OnDestroy();
}
protected override void OnNewIntent(Intent intent)