登录后如何从主屏幕开始

时间:2016-07-09 17:44:32

标签: android

当应用程序第一次运行时,应用程序如何从登录/注册屏幕开始。但是在跳过登录或注册后运行时,从数据库加载用户数据并启动主屏幕?

3 个答案:

答案 0 :(得分:1)

处理此问题的方法是让您的启动器活动检查属性,然后根据该答案决定要显示的活动。您可以使用共享偏好等内容。

public class SplashActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launcher);        
        if (!hasLoggedIn()) {
            startActivity(new Intent(this, LoginActivity.class));
            finish();
        } else {
            startActivity(new Intent(this, MainActivity.class));
            finish();
        }
    }

    public boolean hasLoggedIn() {
    SharedPreferences prefs = getSharedPreferences(
            "prefs_tag", Context.MODE_PRIVATE);
    return prefs.getBoolean("hasLoggedIn", false);
    }
}

然后,当您的用户登录时,将此属性设置为true,当他注销时将其设置为false。

答案 1 :(得分:0)

您可以使用布尔值。如:

if(loggedIn){

startActivity(HomeActivityIntent);

}else{

startActivity(SignInActivityIntent);

}

答案 2 :(得分:0)

基本上是一种在SharedPrefernces中存储登录状态布尔变量的好方法,每次在SplashActivity尝试检查值是真还是假?

在登录活动中,只要用户成功登录,然后将该布尔变量的值设为true,并且当注销使其为假时

您可以执行以下步骤:

在您的登录活动中,如果登录成功,则

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 

SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean(getString(R.string.login_status), true);
editor.commit();

在注销时将其设为false,

在你的启动活动中,

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Boolean status = sharedPref.getBoolean(getString(R.string.login_status), false);

if(status)
{
   startActivity(new Intent(this,MainActivity.class));
   finish();
}
else
{
   startActivity(new Intent(this,Login.class));
   finish();
}