1

我遇到了一个非常奇怪的问题。我在我的 Android 应用程序中使用 Parse 进行 Facebook 和 Twitter 登录。我发现了一种无法解释的行为。当我登录 Facebook 时 - 我从 Twitter 注销,反之亦然。我只用登录逻辑编写了一个示例,这种情况重复了。这是我的示例:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    findViewById(R.id.facebook).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (ParseFacebookUtils.getSession() == null || ParseFacebookUtils.getSession().isClosed()) {
                ParseFacebookUtils.logIn(MainActivity.this, new LogInCallback() {

                    @Override
                    public void done(ParseUser arg0, ParseException arg1) {
                        if (arg0 != null) {
                            Log.i("fsq", "facebook login ok");
                            if (ParseTwitterUtils.getTwitter().getAuthToken() == null) {
                                Log.i("fsq", "twitter logout after facebook login");
                            } else {
                                Log.i("fsq", "twitter ok after facebook login");
                            }
                        } else {
                            Log.i("fsq", "facebook login fail");
                        }
                    }
                });
            } else {
                Log.i("fsq", "facebook alreay logged in");
            }
        }
    });

    findViewById(R.id.twitter).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (ParseTwitterUtils.getTwitter().getAuthToken() == null) {
                ParseTwitterUtils.logIn(MainActivity.this, new LogInCallback() {

                    @Override
                    public void done(ParseUser arg0, ParseException arg1) {
                        if (arg0 != null) {
                            Log.i("fsq", "twitter login ok");
                            if (ParseFacebookUtils.getSession() == null || ParseFacebookUtils.getSession().isClosed()) {
                                Log.i("fsq", "facebook logout after twitter login");
                            } else {
                                Log.i("fsq", "facebook ok after twitter login");
                            }
                        } else {
                            Log.i("fsq", "twitter login fail");
                        }
                    }
                });
            } else {
                Log.i("fsq", "twitter already logged in");
            }
        }
    });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
    }
}

我正在使用 Parse 版本 1.3.1。有没有人面临这样的问题?还是我做错了什么?

4

0 回答 0