xamarin IllegalStateException活动在app关闭时被销毁

时间:2016-12-20 10:23:57

标签: android xamarin xamarin.android xamarin.forms

我收到了IllegalStateException,其中"活动已被销毁"当我关闭我的应用程序时。

在我的App.c中,我声明了一个公共静态MasterPage:

protected override void OnStart()
    {
        // Handle when your app starts
        if (Device.OS == TargetPlatform.Android)
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                masterdetail = new MasterPage();
                MainPage = masterdetail;
            });
        }
        else
        {
            masterdetail = new MasterPage();
            MainPage = masterdetail;
        }
    }

在MasterPage.cs中,我声明了Master和DetilPage:

public partial class MasterPage : MasterDetailPage
{

    public MasterPage()
    {

        var IsLoggedIn = false;

        if (CrossSecureStorage.Current.HasKey("isLoggedIn"))
        {
            IsLoggedIn = string.Equals(CrossSecureStorage.Current.GetValue("isLoggedIn"), "true", System.StringComparison.CurrentCultureIgnoreCase);
        }

        Master = SetMasterContentPage();
        if (IsLoggedIn)
        {   
            Detail = new NavigationPage(new TaxonomyOverviewPage());
        }
        else {
            Detail = new NavigationPage(new LoginPage());
        }
    }

    ContentPage SetMasterContentPage()
    {
        var masterPage = new ContentPage { Title = "Test"};
        masterPage.Content = new StackLayout
        {
            Children = {
                new Label{Text="Label1"},
                new Label{Text="Label2"},
                new Label{Text="Label3"}
            }
        };

        return masterPage;
    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        GC.Collect();
    }
}

1 个答案:

答案 0 :(得分:2)

好的,这是Xamarin.Forms版本2.3.3.175中的一个错误。要修复此错误,请安装早期版本的Xamarin.Forms。我的应用程序运行版本为2.3.0.107。

版本2.3.3.175中的错误应在版本2.3.4-pre1中修复。