サインインしているユーザーの認証トークンを保存しSharedPreferences
ています。サインアウトすると、設定がクリアされます。
private void doSignOut(){
SharedPreferences pref= getSharedPreferences(Constants.SHARED_PREF_DIR, Context.MODE_PRIVATE);
Editor editor = pref.edit();
editor.clear();
editor.apply();
boolean isCleared = editor.commit();
FLog.d("Is Pref cleared = " + isCleared);
mDbHelper.onUpgrade(mDbHelper.getWritableDatabase(), 0, 0);
mDbHelper.close();
Intent intent = new Intent(this, SignInActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
そして、私の中で私はSignInActivity
チェックしますauthToken
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
checkForSignIn();
}
private void checkForSignIn() {
SharedPreferences pref = getSharedPreferences(Constants.SHARED_PREF_DIR, Context.MODE_PRIVATE);
String authToken = pref.getString(Constants.SHARED_PREF_AUTH, null);
if(null == authToken){
showAnimations();
} else {
FLog.d("AuthToken already present " + authToken);
Intent intent = new Intent(getApplicationContext(), com.ribbon.ribbon.MainNavigationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
問題は、checkForSignIn()
authTokenがnull
代わりに実際の値を保持していないことです。
サインアウトする前に設定xmlを確認すると、サインアウト後にクリアされている間、値が含まれています。
ここで何が問題になっていますか?私は非常に明白な何かを逃していますか?助けてください。