我正在尝试在我的Android应用程序的SharedPreferences中保存Facebook ID和facebook usrname,以便随时随地使用它,但是logcat会让我“空” 这是我的“Oncomplete”Facebook方法:
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
String result = response.toString();
SharedPreferences pref = getActivity().getPreferences(0);
SharedPreferences.Editor edt = pref.edit();
edt.putString("result", result);
edt.commit();
Log.i("string","PROVAAAAAA");
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link");
request.setParameters(parameters);
request.executeAsync();
}
我注意到logcat没有写“PROVAAAAAAA” 这是我的回调方法:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
CallbackManager callbackManager = CallbackManager.Factory.create();
callbackManager.onActivityResult(requestCode, resultCode, data);
SharedPreferences pref = getActivity().getPreferences(0);
SharedPreferences.Editor edt = pref.edit();
String id = pref.getString("facebook_id", "empty");
Log.i("RESULT", id );
Log.i("RESULT", "***************");
edt.commit();
}
答案 0 :(得分:0)
当您真正想要的是Activity#getPreferences时,您正在使用PreferenceManager#getDefaultSharedPreferences方法。前者被描述为"活动持续状态",这可能是您访问它时遇到问题的原因。
尝试使用getActivity().getPreferences(0)
替换所有出现的PreferenceManager.getDefaultSharedPreferences(getActivity())
。