在iOS上进行调试时,Connectivity.ConnectivityChanged EventHandler的附加方法会挂起

问题描述

当运行应用程序连接的电话发生更改时,我们正在尝试检查主机服务器的可达性。我们正在Xamarin.Essentials.Connectivity类中使用ConnectivityChanged(EventHandler)。但是,当我们尝试将Connectivity_ConnectivityChanged方法附加到EventHandler时,它将挂起。

public App()
    {
        InitializeComponent();
        Task.Run(async () => { await ApplicationContext.InitialiseAsync(); }).Wait();
        Connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged;
        if (ApplicationContext.Configuration != null && ApplicationContext.Configuration.IsValid())
        {
            LoginPage loginPage = new LoginPage();
            Task.Run(async () => { await ((LoginViewModel)loginPage.BindingContext).InitialiseAsync(true); }).Wait();
            MainPage = new NavigationPage(loginPage);
        }
        else
        {
            MainPage = new NavigationPage(new ConnectionPage());
        }
        ((NavigationPage)MainPage).Popped += Page_CleanUp;
    }
    private async void Connectivity_ConnectivityChanged(object sender,ConnectivityChangedEventArgs e)
    {
        if (DependencyService.Get<IServerReachability>().ConnectionAvailable())
        {
            await ApplicationContext.SetNetworkConnectionAsync(ConnectionState.Online);
            await ApplicationContext.RESTServiceConnectionTestAsync();
        }
        else
        {
            await ApplicationContext.SetNetworkConnectionAsync(ConnectionState.Offline);
        }
    }

在iOS上使用VS for Windows进行调试时,这仅是iOS上的问题。将应用程序部署到iPhone后,就没有问题了

我们创建了一个测试应用:

public App()
    {
        InitializeComponent();
        Connectivity.ConnectivityChanged += ApplicationContext.Connectivity_ConnectivityChanged;
        MainPage = new MainPage();
    }
    public static async void Connectivity_ConnectivityChanged(object sender,ConnectivityChangedEventArgs e)
    {
        await Task.Delay(1);
    }

我们在Windows上使用物理设备对其进行了调试,并成功附加了该方法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...