C# 在xamarin表单的OnBackButtonPressed方法中使应用程序退出

C# 在xamarin表单的OnBackButtonPressed方法中使应用程序退出,c#,android,xamarin.forms,C#,Android,Xamarin.forms,我有一个用户登录的应用程序。现在我希望用户在按下注销按钮后不能返回菜单 这是我的注销方法 public async void OnLogoutButtonClicked(object sender, EventArgs e) { App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID); await Navigation.PushAsync(new

我有一个用户登录的应用程序。现在我希望用户在按下注销按钮后不能返回菜单

这是我的注销方法

public async void OnLogoutButtonClicked(object sender, EventArgs e)
        {
            App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID);
            await Navigation.PushAsync(new LoginPage());
        }
所以,单击注销按钮后,它会将用户推到登录页面。 我可以在登录页面中使用此选项禁用“后退”按钮

 protected override bool OnBackButtonPressed()
   {

      return false;
   }
但这让我的应用程序感觉没有响应,相反,我希望当按下后退按钮时,我的应用程序应该关闭应用程序。 我试过这个

     protected override bool OnBackButtonPressed()
       {

          return exit();
          //
          // exit()
       }

但是它返回布尔值,我应该怎么做才能使它工作?

当用户注销时,通常不希望在现有导航堆栈上推送新页面。当前导航堆栈不再适用,因此应该丢弃,就像清除UserTokenCache一样

因此,您的注销方法应该更像:

public async void OnLogoutButtonClicked(object sender, EventArgs e)
{
    App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID);
    Application.Current.MainPage = new LoginPage();
}
基本上,创建新的登录页面并设置一个新的主页,就像应用程序启动并首先向用户显示登录页面一样


如果这样做,则“上一步”按钮将无法返回菜单,因为整个导航堆栈已不存在。

当用户注销时,通常不希望在现有导航堆栈上推送新页面。当前导航堆栈不再适用,因此应该丢弃,就像清除UserTokenCache一样

因此,您的注销方法应该更像:

public async void OnLogoutButtonClicked(object sender, EventArgs e)
{
    App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID);
    Application.Current.MainPage = new LoginPage();
}
基本上,创建新的登录页面并设置一个新的主页,就像应用程序启动并首先向用户显示登录页面一样

如果这样做,那么“后退”按钮就无法返回菜单,因为整个导航堆栈都不见了