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();
}
基本上,创建新的登录页面并设置一个新的主页,就像应用程序启动并首先向用户显示登录页面一样
如果这样做,那么“后退”按钮就无法返回菜单,因为整个导航堆栈都不见了