繁体   English   中英

PopModalAsync 在 OnAppearing Xamarin.Forms

[英]PopModalAsync in OnAppearing Xamarin.Forms

我正在开发一个 xamarin.forms 应用程序。

在开始播放视频之前的页面上,我必须检查互联网连接是否已打开,否则我会显示错误消息,然后我必须关闭页面

我写了这段代码,但它不起作用,显示了弹出窗口,但是在我按下“确定”后,应用程序冻结并且它不再工作了

    private void ContentPage_Appearing(object sender, EventArgs e)
    {
        if (Connectivity.NetworkAccess != NetworkAccess.Internet)
        {
            DisplayAlert("WARNING!", "Error message!", "OK");
            Navigation.PopModalAsync();
        }
        else
        {

            //...

        }
    }

控制是在内容页面的OnAppearing事件中完成的,这就是Navigation.PopModalAsync()不起作用的原因吗? 我该如何解决?

您应该使用异步操作,因为DisplayAlertPopModalAsync都返回一个任务。 此外,您应该覆盖页面的 OnAppearing 方法并删除 Appearing 事件处理程序。

protected override async void OnAppearing()
{
    base.OnAppearing();
    if (Connectivity.NetworkAccess != NetworkAccess.Internet)
    {
        await DisplayAlert("WARNING!", "Error message!", "OK");
        await Navigation.PopModalAsync();
    }
    else
    {

        //...

    }
}

再次不推荐使用async void ,我建议使用 MVVM 而不是直接在页面的代码隐藏上编写代码,但这现在应该可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM