在Xamarin表单中,PushAsync等导航方法是一个异步Task
返回方法,但在调用它时使用await
是否没有区别,对吗?我应该等这些电话吗?
另一个问题是,导航指南中说,模型页面用于导航到需要在驳回它之前完成自包含任务的页面,但看起来pushasync和pushmodelasync没有什么区别,除了模型页面没有导航栏之外,用户仍然可以像pushasync一样使用os后退按钮返回,对吗?
此处适用awating的常见注意事项。如果您没有await
PushAsync,然后在代码中执行另一个操作(或者您的框架执行了另一个您可能不知道的操作),那么这些操作可能会在PushAsync.完成之前执行(也就是说,在页面显示给用户之前)。此外,如果PushAsync操作中出现异常,如果您不等待调用,您将不会注意到。一般来说,即使您在PushAsync之后什么都不做,也最好等待调用(就像大多数其他异步操作一样),除非您确切地知道为什么不想这样做。
至于第二个问题,您的链接提供了答案:
在Android和Windows Phone上,用户始终可以返回上一页,方法是按下设备上的标准"后退"按钮。如果模式页面要求用户完成一个自包含的任务在离开页面之前,应用程序必须禁用"后退"按钮。这可以通过覆盖Page.OnBackButtonPressed来完成方法。有关更多信息,请参阅的第24章Charles Petzold的Xamarin。表格书。