我想使用SharedPreferences跳過登錄Activity:如果登錄已完成,SharedPreferences將存儲用戶名,並且登錄將繼續第二次,而無需通過登錄活動。SharedPreferences在第一次登錄後避免登錄屏幕
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中沒有顯示任何內容。
我不是在哪裏我犯了一個錯誤。
這個''String'包含your_user_name'哪些價值? –
您尚未正確使用共享首選項。當用戶通過Facebook登錄時,您應該提交一個用戶名。 onCreate你只需要檢查它是否包含默認值,然後顯示登錄屏幕,否則轉到下一個活動。 –