Java 如何覆盖onBackPressed以确保注销用户不能;“回去”;到MainActivity,并且登录的用户不能;“回去”;有意义吗?
背景:我有一项重要的活动和一项主要的活动。当用户尚未登录或身份验证令牌过期时,首先向用户显示SignInUserActivity。成功登录后,用户将被定向到MainActivity,或者如果在打开应用时验证令牌有效,则用户将在打开应用时被定向到MainActivity。用户可以从MainActivity注销,这将引导用户返回SignInUserActivity 1) 用户从SignInUserActivity登录。当用户在SignInUserActivity中按On Backpress时,应用程序应关闭(或移到后台)> 2) 在用户登录后,用户不能通过返回足够的次数或工具栏上的navigateUp按钮返回SignInUserActivity,返回时只应关闭应用程序(或将其移动到后台)。目前,我有Java 如何覆盖onBackPressed以确保注销用户不能;“回去”;到MainActivity,并且登录的用户不能;“回去”;有意义吗?,java,android,authentication,Java,Android,Authentication,背景:我有一项重要的活动和一项主要的活动。当用户尚未登录或身份验证令牌过期时,首先向用户显示SignInUserActivity。成功登录后,用户将被定向到MainActivity,或者如果在打开应用时验证令牌有效,则用户将在打开应用时被定向到MainActivity。用户可以从MainActivity注销,这将引导用户返回SignInUserActivity 1) 用户从SignInUserActivity登录。当用户在SignInUserActivity中按On Backpress时,应用程
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
在我的主要活动中
3) 如果用户从MainActivity注销,在SignInUserActivity中,onBackPressed不应将用户引导回MainActivity(由于会话已被删除,因此数据为空)。目前我处理它的方式是将用户重定向回SignInUserActivity:
public void handleRedirect(String sessionId) {
if (sessionId == null) {
Intent requireSignInIntent = new Intent(this, SignInUserActivity.class);
startActivity(requireSignInIntent);
}
}
但是它应该在backpressed时重写?似乎您的问题可以通过启动一个新的
活动堆栈轻松解决。当您开始signianctivity
以及成功登录后导航到其他活动时,只需添加此项
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
此标志应涵盖您的第一个和第二个问题。至于第三个问题,您的逻辑似乎做得很好,但我没有完全理解最后一部分。它对您有帮助吗?