首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在等待的DisplayAlert期间,用户可以导航吗?

在等待的DisplayAlert期间,用户可以导航吗?
EN

Stack Overflow用户
提问于 2018-10-04 00:39:13
回答 2查看 71关注 0票数 0

抱歉,如果这听起来像个愚蠢的问题,但我只是好奇。

说我有这个:

代码语言:javascript
运行
复制
async void buttonTapped(object sender, EventArgs e)
{
    var sure = await DisplayAlert("Confirm", "Are you sure?", "Ok", "Cancel");
    // Can the user navigate away before execution gets to this point?
}

请参阅我对async/await的理解,即一旦await被击中,UI就会响应。因此,理论上,作为正在显示警报,用户实际上可以点击后退按钮,然后返回到上一页吗?

还是我搞错了?

EN

回答 2

Stack Overflow用户

发布于 2018-10-04 04:04:07

正如我所知,当你有一个等待的DisplayAlert,它在等待你的响应。当您点击back按钮时,DisplayAkert的响应将是null (在您的例子中,sure param值是null),您也只是关闭了警报,仅此而已。如果您想从当前页面返回到上一页,在该页面中调用DisplayAlert,我认为您需要创建自定义警报,比如PopupPage

票数 0
EN

Stack Overflow用户

发布于 2018-10-04 08:27:58

async/await不能使UI响应。它只是告诉代码在那个时候等待等待方法的完成。

例如:

代码语言:javascript
运行
复制
async void SomeMethod()
{
    // Do some stuff

    await Task.Delay(1000);
    Task.Delay(1000);

    // Do more stuff
}

在上面的方法中,代码会做一些事情,然后阻塞,直到first Task.Delay完成为止。然后,它会继续做更多的事情。

如果您没有一个await (与第二个 Task.Delay一样),代码将简单地继续运行,而无需等待第二个 Task.Delay完成。事实上,你应该得到一个警告。上面的方法等待的总时间是1秒,因为只等待first Task.Delay方法。

关于在显示对话框时导航离开的问题,是的,这是完全可能的。如果用户在对话框显示前超高速点击后退按钮,它将导航到上一页并显示对话框(除非后退按钮关闭应用程序,在这种情况下,对话框将不会显示)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52637421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档