保存JSON Facebook会导致SharedPref

时间:2015-05-25 13:49:48

标签: java android json facebook facebook-graph-api

我正在尝试在我的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();

    }

1 个答案:

答案 0 :(得分:0)

当您真正想要的是Activity#getPreferences时,您正在使用PreferenceManager#getDefaultSharedPreferences方法。前者被描述为"活动持续状态",这可能是您访问它时遇到问题的原因。

尝试使用getActivity().getPreferences(0)替换所有出现的PreferenceManager.getDefaultSharedPreferences(getActivity())