0

アプリケーション内でユーザー セッションを復元しようとしています。そのために私は電話します:

Session.openActiveSessionFromCache(ctx);

ほとんどの場合、問題なく動作します。しかし、時々私は得る:

java.lang.UnsupportedOperationException: Session: an attempt was made to open an already opened session.

編集 :

このチェックを追加しました:

    Session activeSession = Session.getActiveSession();
    if (activeSession!=null && activeSession.isOpened()){
        return activeSession;
    }
    activeSession = Session.openActiveSessionFromCache(ctx);

そしてそれは助けにはなりませんでした

誰もその問題に取り組む方法のヒントを持っていますか?

ありがとう

4

2 に答える 2

2

として

openActiveSessionFromCache

次のように機能します。「新しいセッションを作成し、トークンキャッシュが利用可能な場合は、セッションを開いて、ユーザーの操作なしでアクティブにします」。

そのため、openActiveSessionFromCache を呼び出す前に、セッションが開いているかどうかを確認した方がよいでしょう。あなたが使用することができます

isOpened()

于 2013-07-11T19:44:32.347 に答える
1

Facebook セッションが開いた状態でない場合は、このコード行を使用します。

private Session.StatusCallback callback = new Session.StatusCallback() {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
        if (!state.isClosed()) {
            Session.openActiveSessionFromCache(ctx);
        }
    }
};
于 2013-07-13T20:53:17.097 に答える