登录或注册后后退禁用

时间:2018-10-04 11:55:47

标签: android

因此,我有一个需要登录和注册的应用程序。两者都调用API,并且响应返回唯一的令牌。我计划将此令牌存储在“共享首选项”中,并在注销时清除它。我的问题是登录或注册后如何处理后退?如果用户按下后退按钮登录,则我不想返回登录/注册屏幕。

6 个答案:

答案 0 :(得分:0)

成功登录或注册后使用 finish()破坏登录或注册活动

答案 1 :(得分:0)

正如我的朋友所说,成功登录后,您应该通过调用finish()方法来完成此活动,然后启动新活动,或者开始新活动然后完成登录活动,没什么不同,
只要记得通过调用which composer

完成登录活动即可

答案 2 :(得分:0)

您应该创建一个类来存储此类会话信息。 如果用户(或操作系统本身)杀死了应用程序进程,则将其存储在SharedPreferences中会导致您不删除该令牌。

无论如何,如果您想这样做,则只需覆盖onBackPressed中的Activity方法:

@Override
public void onBackPressed() {
    // Here you can do whatever you want. Leave it blank if you
    // want not to do anything, or show a Logout popup... whatever you need
    // If you want to close all activities, call finishAffinity()
}

答案 3 :(得分:0)

在第二个活动(登录或注册后转到的活动)中,重写Rcpp方法并在其中实现自己的逻辑。您可以选择在按下后退键时不执行任何操作,可能会一起退出该应用程序。由您决定。

onBackPressed

答案 4 :(得分:0)

您可以使用意图标志从登录或注册屏幕开始下一个活动,这将清除活动堆栈,现在当用户在不显示当前活动之前按回任何活动时。您可以在这里阅读有关意图标志的更多信息:https://developer.android.com/reference/android/content/Intent

private void startActivity() {
    Intent intent = new Intent(this, YourActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
  }

答案 5 :(得分:0)

您可以致电finish()破坏活动。但是完成只能从调用它的后堆栈中删除当前活动。 因此,出现这样的情况,例如出现首次登录屏幕,并且在成功注册后,如果登录成功,则登录用户将进入注册活动,如果您调用完成,它将从后退堆栈中删除注册活动,但是登录活动仍保留在后退堆栈中,当您按返回时,您将返回登录屏幕,以便呼叫finishAffinity(),以删除成功登录或注册后的所有先前活动。

注意:如果您阻止用户使用后退按钮不是一种好习惯,则用户无法通过按后退按钮返回主屏幕。