在Android活动中共享全局Facebook对象

在Android活动中共享全局Facebook对象,第1张

概述我正在创建一个全局Facebook对象(来自android-facebook-sdk),以便能够在我的活动中共享它:publicclassGlobalVarsextendsApplication{publicstaticfinalStringAPP_ID="123456789";publicFacebookfacebook=newFacebook(APP_ID);}在其中一项活动

我正在创建一个全局Facebook对象(来自android-facebook-sdk),以便能够在我的活动中共享它:

public class GlobalVars extends Application {    public static final String APP_ID = "123456789";        public Facebook facebook = new Facebook(APP_ID);}

在其中一项活动中,我添加了Loginbutton,如示例所示:

public class FacebookActivity extends Activity {    private Loginbutton mLoginbutton;    private Facebook mFacebook;        private AsyncFacebookRunner mAsyncRunner;        @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mFacebook = ((GlobalVars)getApplicationContext()).facebook;        setContentVIEw(R.layout.facebook);        mLoginbutton = (Loginbutton) findVIEwByID(R.ID.login);        mText = (TextVIEw) FacebookActivity.this.findVIEwByID(R.ID.txt);        mAsyncRunner = new AsyncFacebookRunner(mFacebook);        SessionStore.restore(mFacebook, this);        SessionEvents.addAuthListener(new SampleAuthListener());        SessionEvents.addlogoutListener(new SamplelogoutListener());        mLoginbutton.init(this, mFacebook);    }    ...}

现在,当我登录并使用相同的Facebook对象进入其他活动时:

public class MainActivity extends WhipemActivity {    private Facebook mFacebook;        private AsyncFacebookRunner mAsyncRunner;       @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        mFacebook = ((GlobalVars)getApplicationContext()).facebook;    }    ....}

并运行一个请求,例如:

mAsyncRunner = new AsyncFacebookRunner(mFacebook);mAsyncRunner.request("me/frIEnds", new FrIEndRequestListener());

我得到一个

Facebook Error: Error valIDating access token.

怎么了?这是拥有全球Facebook对象的正确方法吗?

谢谢.

解决方法:

7月,在您的新活动中,您需要还原登录期间获得的访问令牌.

SessionStore.restore(mFacebook, this);

SessionStore保存并保存通过创建的SharedPreferences对象将访问令牌恢复到SharedPreferences中,或从中恢复.

SessionStore.restore()获取保存在SharedPreferences中的访问令牌,并将其设置在Facebook对象上.

您可以在“ Facebook示例简单”项目中查看,并查看SessionStore类以更好地了解SessionStore的工作方式.

facebook-android-sdk/examples/simple

总结

以上是内存溢出为你收集整理的在Android活动中共享全局Facebook对象全部内容,希望文章能够帮你解决在Android活动中共享全局Facebook对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1071819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存