SharedPreferences 以避免首次登录后出现登录屏幕
SharedPreferences to avoid login screen after the first login
我正在尝试使用 SharedPreferences 跳过登录 Activity:如果登录已经完成,SharedPreferences 将存储用户名,并且将继续进行第二次登录,而无需通过登录 Activity.
CallbackManager mcallbackManager;
private SharedPreferences mPreferences;
private String your_user_name;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPreferences = getSharedPreferences("User", MODE_PRIVATE);
SharedPreferences.Editor editor = mPreferences.edit();
editor.putString("username", your_user_name);
editor.commit();
if (mPreferences.contains("username")) {
Intent intent = new Intent(MainActivity.this, getMyLocation.class);
startActivity(intent);
}else {
FacebookSdk.sdkInitialize(this.getApplicationContext());
setContentView(R.layout.activity_main);
mcallbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(mcallbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Intent intent = new Intent(MainActivity.this, getMyLocation.class);
startActivity(intent);
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
}
}
我已经使用了上面的代码,但它似乎没有达到预期的效果。
运行 时应用程序没有崩溃,logcat 中没有显示任何内容。
不知道哪里错了
不要将字符串与用户名进行比较只设置一个布尔值
登录成功后将该值设为真。
sharePrefObje.putBoolean("isLoginKey",true);
在你的闪屏上这样检查
if (getSharedPreferences("PREFERENCENAME",0).getBoolean("isLoginKey",false)){
Intent i = new Intent(SplashActivity.this, MainActivity.class);
startActivity(i);
finish();
}else{
Intent i = new Intent(SplashActivity.this, LoginActivity.class);
startActivity(i);
finish();
}
我正在尝试使用 SharedPreferences 跳过登录 Activity:如果登录已经完成,SharedPreferences 将存储用户名,并且将继续进行第二次登录,而无需通过登录 Activity.
CallbackManager mcallbackManager;
private SharedPreferences mPreferences;
private String your_user_name;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPreferences = getSharedPreferences("User", MODE_PRIVATE);
SharedPreferences.Editor editor = mPreferences.edit();
editor.putString("username", your_user_name);
editor.commit();
if (mPreferences.contains("username")) {
Intent intent = new Intent(MainActivity.this, getMyLocation.class);
startActivity(intent);
}else {
FacebookSdk.sdkInitialize(this.getApplicationContext());
setContentView(R.layout.activity_main);
mcallbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(mcallbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Intent intent = new Intent(MainActivity.this, getMyLocation.class);
startActivity(intent);
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
}
}
我已经使用了上面的代码,但它似乎没有达到预期的效果。
运行 时应用程序没有崩溃,logcat 中没有显示任何内容。
不知道哪里错了
不要将字符串与用户名进行比较只设置一个布尔值
登录成功后将该值设为真。
sharePrefObje.putBoolean("isLoginKey",true);
在你的闪屏上这样检查
if (getSharedPreferences("PREFERENCENAME",0).getBoolean("isLoginKey",false)){
Intent i = new Intent(SplashActivity.this, MainActivity.class);
startActivity(i);
finish();
}else{
Intent i = new Intent(SplashActivity.this, LoginActivity.class);
startActivity(i);
finish();
}