当应用程序第一次运行时,应用程序如何从登录/注册屏幕开始。但是在跳过登录或注册后运行时,从数据库加载用户数据并启动主屏幕?
答案 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();
}