android - 如何防止登录用户返回到 Android 中的登录/注册屏幕?

标签 android

在我的应用程序中,用户首先会看到一个带有 Logo 和登录/注册按钮的屏幕。 有登录和注册屏幕,然后用户转到主屏幕。

我想阻止他们在登录/注册后看到第一个屏幕和/或登录/注册屏幕,直到他们注销。

这是我试过的:

public class MainActivity extends Activity {
private boolean isUserLoggedIn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sharedPrefs = getApplicationContext().getSharedPreferences(APP_SHARED_PREFS, Context.MODE_PRIVATE);
        isUserLoggedIn = sharedPrefs.getBoolean("userLoggedInState", false);
        if(isUserLoggedIn) {
            finish();
        }
`}

我希望它能将它们重定向回调用 Activity ,但它并没有这样做。 更糟糕的是,如果我已经登录并转到其他应用程序,当我回到这个应用程序时,我会被淘汰,因为在共享首选项中我已经登录了,所以这个 finish() 将我带回到以前的应用程序。这是我的启动 Activity 。

最佳答案

您可以在调用 finish() 方法之前启动另一个 Activity 。

当您想从 Activity 中获取结果时,您将使用 startActivityForResult 方法启动该 Activity 。然后您可以覆盖 Activity 的 onBackPressed 方法,您可以从中获得一些结果。

public void onBackPressed() { 
    Intent intent = new Intent();
    // add any value to intent
    setResult(RESULT_CANCALLED, intent); 
    super.onBackPressed(); 
}

您将在

中收到此意向
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    // in this method
}

通话 Activity 。

关于android - 如何防止登录用户返回到 Android 中的登录/注册屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19752609/

相关文章:

java - 捕捉到道路安卓

java - 是否有用于非连续创建 XML 的内置 Android 类?

javascript - 如何在 Android 应用程序的 WebView 中查看 Javascript 错误?

java - 尝试在小部件 ListView 上显示 arraylist<string>

Android 主屏幕小部件动态调整文本大小

Android: fragment 更改时如何重新创建操作栏

java - 检查用户是否通过 firebase android 验证

java - 如何使用 APV PDF 查看器

android - 按下主页按钮并重新打开应用程序后如何在 Android 中恢复 MediaPlayer

android - java.lang.OutOfMemoryError : android. support.v4.app.BackStackState[] 长度为 1279544898 会溢出