用户在Android Studio中登录后如何打开应用程序到不同的活动

时间:2016-08-09 04:41:07

标签: java android android-studio

我是Android Studio的新手,我正在创建一个简单的应用程序,用户必须登录并进入不同的屏幕。当用户首次打开应用程序时,将通过登录活动提示他们,如果登录成功,他们将转到另一个活动。我想知道在用户登录之后如何关闭应用程序并再次打开它将直接将其带到其他活动。

4 个答案:

答案 0 :(得分:1)

您的登录活动中需要这样的内容:

protected void onResume() {
    super.onResume();
    // Checking for user session
    // if user is already logged in, take him to main activity
    if (pref.isLoggedIn()) {
       //here, pref is the instance of your preference manager
        Intent intent = new Intent(LoginActivity.this, MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);

        finish();
    }

}

您可以像这样创建一个首选项管理器:

public class PrefManager {
// Shared Preferences
SharedPreferences pref;

// Editor for Shared preferences
SharedPreferences.Editor editor;

// Context
Context _context;

// Shared pref mode
int PRIVATE_MODE = 0;

// Shared preferences file name
private static final String PREF_NAME = "YourAppName";

// All Shared Preferences Keys
private static final String KEY_IS_LOGGED_IN = "isLoggedIn";
private static final String KEY_NAME = "name";
private static final String KEY_PICTURE = "picture";
private static final String KEY_MOBILE = "mobile";

//initializing sharedPreferences
public PrefManager(Context context) {
    this._context = context;
    pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
    editor = pref.edit();
}

public void setMobileNumber(String mobileNumber) {
    editor.putString(KEY_MOBILE, mobileNumber);
    editor.commit();
}

public void setName(String name) {
    editor.putString(KEY_NAME, name);
    editor.commit();
}

public void setPicture(String picture) {
    editor.putString(KEY_PICTURE, picture);
    editor.commit();
}

public String getMobileNumber() {
    return pref.getString(KEY_MOBILE, null);
}

//Logging in user and setting the name and profile picture
public void createLogin(final String mobile) {

    //here, handle the mobile number or email or any details that you 
    //use for the login. Then do this:

    editor.putBoolean(KEY_IS_LOGGED_IN, true);
    editor.commit();
}

public boolean isLoggedIn() {
    return pref.getBoolean(KEY_IS_LOGGED_IN, false);//false is the default value in case there's nothing found with the key
}

public void clearSession() {
    editor.clear();
    editor.commit();
}
}

在登录活动中,一旦您的登录成功,也将PrefManager中的登录设置为true。如果您需要更多帮助,请告诉我。

答案 1 :(得分:1)

启动画面是决定用户应该导航到哪个页面的最佳位置。在启动画面中,检查用户已登录的天气。如果已登录,则将其导航到主页。然后导航他登录/注册页面。将用户登录信息存储在共享首选项中以检查启动画面。

答案 2 :(得分:0)

以非常简单的方式,使用共享首选项存储用户的登录详细信息。在登录之前检查共享首选项是否具有用户凭据。如果有,请切换到另一个活动,否则转到登录页面。

答案 3 :(得分:0)

当用户首次打开应用程序时,登录成功后,您将一个变量boolean isLogin true 保存到共享首选项。 再次打开时,检查变量boolean isLogin是 true 然后启动MainActivity,反之亦然,启动Activity Login。