1

私はアプリに取り組んでおり、クラスを拡張したコードがあり、FacebookActivityOPENED_TOKEN_UPDATEDの意味と、この部分がいつ実行されるのかを知りたいと思いました。

if (state.equals(SessionState.OPENED_TOKEN_UPDATED)) { 
                        //WHEN THIS PORTION WILL EXECUTE
                    }

Facebookのドキュメントはあまり良くありません。以下のコードも参照してください

    @Override
    protected void onSessionStateChange(SessionState state, Exception exception) {
        if (isResumed) { //if its a visible activity
            FragmentManager manager = getSupportFragmentManager();
            int backStackSize = manager.getBackStackEntryCount(); //get number of entries currently in the back-stack
            for (int i = 0; i < backStackSize; i++) {
                manager.popBackStack(); //clear fragment back-stack before new fragment is added
            }
            if (state.isOpened()) {
                if (state.equals(SessionState.OPENED_TOKEN_UPDATED)) { 
                    //WHEN THIS PORTION WILL EXECUTE
                }else{
                    //replace fragment on main with promo fragment
                    FragmentTransaction transaction = manager.beginTransaction();
                    transaction.replace(R.id.body_frame, fragments[NextFgragment]).commit();

                }
            } else if (state.isClosed()) {

                //replace fragment on main with login fragment
            }
        }
    }
4

3 に答える 3

2

最初にセッションを開くと、SessionState.OPENED状態になります。再承認リクエストを行うか、トークンが更新されると、トークンはOPENED_TOKEN_UPDATED状態になります。

通常、OPENEDとOPENED_TOKEN_UPDATEDの両方を同じものとして扱うことができますが、場合によっては(より多くのアクセス許可を要求する場合など)、トークンがいつ更新されたかを知りたい場合があります。

于 2012-12-05T17:16:44.877 に答える
1

このコードを無効にすることができます

if (state.equals(SessionState.OPENED_TOKEN_UPDATED)) { 
                    //WHEN THIS PORTION WILL EXECUTE
                }
于 2012-12-05T14:25:18.503 に答える
0

SessionState.OPENED_TOKEN_UPDATED のドキュメントには次のように書かれています。

「セッションが開かれ、トークンが変更されたことを示します。この状態では、セッションはリクエストで使用できます。」

コードのその部分は、トークンが変更されたときに何かをする必要がある場合に役立ちます

于 2012-12-05T16:00:19.033 に答える