我试图将Facebook id和Facebook用户名保存在我的android应用程序上的SharedPreferences中,以便随时随地使用它,但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();
}
当你真正想要的是PreferenceManager#getDefaultSharedPreferences时,你正在使用活动#getPreferences方法。前者被描述为"活动持久状态",这可能是您访问它时遇到问题的原因。
尝试用PreferenceManager.getDefaultSharedPreferences(getActivity())
替换所有出现的getActivity().getPreferences(0)