【问题标题】:Android AccesToken is nullAndroid 访问令牌为空
【发布时间】:2016-01-29 10:32:12
【问题描述】:

我正在开发一个基于 Facebook 4.0 登录的应用程序。 用户可以登录Login.activity,然后main.Activity就显示出来了。

用户成功登录后,AccessToken.getCurrentAccessToken() 不为空,我可以执行图形请求。

 ParseFacebookUtils.logInWithReadPermissionsInBackground(...)

然后

AccessToken token = AccessToken.getCurrentAccessToken();
if(token != null)
    GraphRequest request = GraphRequest.newMeRequest(token, ...)

但是在我的 Intent 之后,AccessToken.getCurrentAccessToken() 始终为空。

你知道为什么 AccessToken 不能跨活动使用吗?

谢谢,

【问题讨论】:

    标签: android android-intent access-token facebook-sdk-4.0


    【解决方案1】:

    您可以在MainActivity中将AccessToken声明为静态,然后在onCreate中对其进行初始化,然后您就可以在其他活动中使用它。

    或者最好的方法是分享它,抛出你的意图,看这里,What's the best way to share data between activities?

    在意图内发送数据

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    intent.putExtra("some_key", value);
    intent.putExtra("some_other_key", "a value");
    startActivity(intent);
    

    关于第二个活动:

    Bundle bundle = getIntent().getExtras();
    int value = bundle.getInt("some_key");
    String value2 = bundle.getString("some_other_key");
    

    PS:截取的代码来自分享帖

    【讨论】:

    • 但我猜 AccessToken.getCurrentAccessToken() 已经是静态的了。我不明白为什么在我的意图之后它会变为空..
    • 你有没有从你的活动中传递数据并抛出那个意图?
    • 我刚刚做了this.startActivity(new Intent(this, MainActivity.class));当用户成功登录时在我的 Login.acitivity 中
    • 好的,很好。但是您必须分享您的活动日期,您可以通过您的意图或通过将变量设为静态来完成。这是一个如何通过它的示例。在意图内发送数据 Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra("some_key", value); intent.putExtra("some_other_key", "a value");开始活动(意图);在第二个活动中:Bundle bundle = getIntent().getExtras(); int value = bundle.getInt("some_key"); String value2 = bundle.getString("some_other_key"); PS:这是从共享帖子中提取的。
    猜你喜欢
    • 2012-08-21
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 2012-12-29
    • 2012-08-29
    相关资源
    最近更新 更多