【问题标题】:await on navigation pushasync?等待导航推送同步?
【发布时间】:2018-03-19 19:27:59
【问题描述】:

在Xamarin表单中,PushAsync之类的导航方法是异步的Task返回方法,但是调用的时候用await看是不是没什么区别,是吗?我应该等待这些电话吗?

另一个问题,navigation guide 说模型页面用于导航到需要在关闭它之前完成自包含任务的页面,但看起来 pushasync 和 pushmodelasync 之间没有区别,除了模型页面没有导航栏,用户仍然可以像pushasync一样使用os后退按钮返回,对吗?

【问题讨论】:

    标签: c# xamarin xamarin.forms navigation


    【解决方案1】:

    这里适用于 awating 的常规注意事项。如果您不 await PushAsync 然后在代码中执行其他操作(或者您的框架执行您可能不知道的其他操作) - 这些操作可能在 PushAsync 完成之前执行(即 - 在页面之前呈现给用户)。此外,如果 PushAsync 操作中有一些异常 - 如果您不等待调用,您将不会注意到它。一般来说,即使您在 PushAsync 之后不执行任何操作 - 最好等待调用(与大多数其他异步操作一样),除非您确切知道为什么不想这样做。

    至于第二个问题,您的链接提供了答案:

    在 Android 和 Windows Phone 上,用户可以随时返回 按设备上的标准后退按钮上一页。如果 模态页面要求用户完成一个独立的任务 在离开页面之前,应用程序必须禁用返回按钮。 这可以通过覆盖 Page.OnBackButtonPressed 来完成 模态页面上的方法。有关详细信息,请参阅第 24 章 Charles Petzold 的 Xamarin.Forms 书。

    【讨论】:

    • 我有一个带有 for 循环的示例,在 await 之后,即使在 await 完成之前,它仍然会执行。我有这个等待 Navigation.PushAsync(mypage, true);在我有一个 for 循环之后。任务完成后如何执行for循环?
    猜你喜欢
    • 1970-01-01
    • 2015-05-13
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2021-07-12
    • 1970-01-01
    相关资源
    最近更新 更多