1

我正在开发一个应用程序,它有代码,我在其中扩展了我的课程,FacebookActivity我想知道 OPENED_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 的文档说:

“表示 Session 已打开且令牌已更改。在此状态下,Session 可能与 Request 一起使用。”

这部分代码很有用,如果需要在令牌更改时做一些事情

于 2012-12-05T16:00:19.033 回答