在我的应用程序中,用户首先会看到一个带有 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/