在Xamarin形式中,诸如PushAsync之类的导航方法是一个异步Task
返回方法,但它看起来在调用时使用await
是否没有区别,对吗?我应该等待这些电话吗?
另一个问题,navigation guide说模型页面用于导航到需要先完成自包含任务的页面,然后再关闭它,但看起来pushasync和pushmodelasync没有区别,除了模型页面没有导航栏,用户可以仍然使用os back按钮像pushasync一样返回,对吗?
最佳答案
通常的注意事项在这里适用。如果您不await
PushAsync,然后在代码中执行其他操作(或者您的框架执行了您可能不知道的其他操作),则这些操作可能在PushAsync完成之前执行(即-在页面创建之前)呈现给用户)。另外,如果PushAsync操作中有一些异常-如果您不等待呼叫,您将不会注意到它。通常,即使您在PushAsync之后什么也不做-最好等待呼叫(与大多数其他异步操作一样),除非您知道为什么不这样做。
至于第二个问题,您的链接提供了答案:
在Android和Windows Phone上,用户始终可以返回到
通过按设备上的标准“后退”按钮返回上一页。如果
模态页面要求用户完成一项独立任务
在离开页面之前,应用程序必须禁用“后退”按钮。
这可以通过重写Page.OnBackButtonPressed来完成
模式页面上的方法。有关更多信息,请参见
Charles Petzold的Xamarin.Forms书。
关于c# - 等待导航pushasync?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46632014/