0

Facebook http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/でログインするためのチュートリアルに従っています。フェイスブックへのログインに成功しました。しかし、今私の onCancel() メソッドは、Facebook ダイアログで十字ボタンを押している間、呼び出されません。

これが私のコードです。

public void loginToFacebook() {
    mPrefs = getPreferences(MODE_PRIVATE);
    String access_token = mPrefs.getString("access_token", null);
    long expires = mPrefs.getLong("access_expires", 0);

    if (access_token != null) {
        facebook.setAccessToken(access_token);
    }

    if (expires != 0) {
        facebook.setAccessExpires(expires);
    }

    if (!facebook.isSessionValid()) {
        facebook.authorize(this,
                new String[] { "email", "publish_stream" },
                new DialogListener() {

                    @Override
                    public void onCancel() {
                        // Function to handle cancel event

                        Toast.makeText(context, "Canceld",
                                Toast.LENGTH_SHORT).show();

                    }

                    @Override
                    public void onComplete(Bundle values) {
                        // Function to handle complete event
                        // Edit Preferences and update facebook acess_token
                        SharedPreferences.Editor editor = mPrefs.edit();
                        editor.putString("access_token",
                                facebook.getAccessToken());
                        editor.putLong("access_expires",
                                facebook.getAccessExpires());
                        editor.commit();

                        Log.i("onComplete", "Log");

                    }

                    @Override
                    public void onError(DialogError error) {
                        // Function to handle error
                        Log.i("onError", "Log");
                    }

                    @Override
                    public void onFacebookError(FacebookError fberror) {
                        // Function to handle Facebook errors

                        Log.i("FB Error", "Log");

                    }

                });
    }

onCancel() メソッド内にトーストが表示されないことをテストしました。

4

1 に答える 1

0

onDismiss(DialogInterface dialog){} を試してください。通常、ダイアログはジョブが終了して画面から削除されると閉じられます。ユーザーがダイアログをエスケープしたいときに [戻る] ボタンを押すと、ダイアログがキャンセルされます。

于 2013-05-05T15:49:53.953 に答える