在Xamarin表单中,OnResume事件处理程序位于Application类上,而Application类不是NavigationPage,因此不能在OnResume中进行任何导航。当我的应用程序恢复运行时,如果它已经睡眠超过30分钟,我希望它回到主页,而不是恢复到它睡觉的页面。我在OnResume中有30分钟的陷阱,但我不能导航。有人能建议一种方法吗?
默认情况下,在Forms应用程序中,您存储的是MainPage
,在本例中应该是NavigationPage
。
public class App : Application
{
public App ()
{
// The root page of your application
MainPage = new NavigationPage {
因此,您可以使用它来获取Navigation
对象。
protected override async void OnResume ()
{
var nav = MainPage.Navigation;
// you may want to clear the stack (history)
await nav.PopToRootAsync (true);
// then open the needed page (I'm guessing a login page)
await nav.PushAsync(new LoginPage());
}
尝试更新你的OnResume方法,如下所示:
protected async override void OnResume ()
{
await MainPage.Navigation.PopToRootAsync (true);
}