私はFacebookのログインボタン用に以下のonclickを持っています:
fblogin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Session session = Session.getActiveSession();
if (session == null) {
Session.openActiveSession(LogIn.this, true,
statusCallback);
} else if (!session.isOpened()) {
session.openForRead(new Session.OpenRequest(
LogIn.this).setCallback(statusCallback)
.setPermissions(permissions)
);
}
}
});
そして、以下のログアウト onclick を設定します。
private OnClickListener OnClick_logout = new OnClickListener() {
public void onClick(View v) {
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("loggedIn", false);
editor.putString("email", "");
editor.putString("password", "");
editor.commit();
db.clearLists();
db.clearProducts();
Intent intent = new Intent(v.getContext(), Splash.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
v.getContext().startActivity(intent);
}
};
現在、これは facebook をログアウトしません。つまり、ユーザーがログイン アクティビティに戻って fblogin ボタンをクリックしようとしても、何も起こりません。
ユーザーが fblogin ボタンをもう一度押して再度ログインできるように、実際に Facebook をログアウトするには、ログアウト onclick に何を追加する必要がありますか。
ログアウトボタンに追加しようとしました:
Session.getActiveSession().closeAndClearTokenInformation();
ただし、ログイン画面に戻ってログインボタンをクリックすると、次のようになります。
10-30 10:51:14.776: E/AndroidRuntime(18964): java.lang.UnsupportedOperationException: Session: an attempt was made to open an already opened session.