微博登陆第二次调用接收不到回调

问题:在登陆页面中,第一次调用微博登陆可以正常,第二次调用时接收不到回调。
场景:程序内多个地方调用三方登录,进行封装,以单例的模式在一个特有类中持有。

原代码大概:

public class OpenAccountHolder {
    public static SsoHandler getWBLogin(Activity activity){
        if (mSsoHandler == null){
            synchronized (OpenAccountHolder.class){
                AuthInfo mAuthInfo = new AuthInfo(activity, Constants.WEIBO_APPKEY, Constants.URL_REDIRECT, Constants.SCOPE);
                mSsoHandler = new SsoHandler(activity, mAuthInfo);
            }
        }
        return mSsoHandler;
    }
    public static IWeiboShareAPI getWBShare(){
    }
    public static Tencent getTencent(){
    }
    public static IWXAPI getWXApi(){
    }
}

在实际使用中发现,在同样的登陆页面,第一次调用微博登陆正常,回调正常运行,但是登出再登陆的时候,调用正常,但是接收不到回调。

解决:

public static SsoHandler getWBLogin(Activity activity) {
        if (mSsoHandler != null) {
            mSsoHandler = null;
        }
        AuthInfo mAuthInfo = new AuthInfo(activity, Constants.WEIBO_APPKEY, Constants.URL_REDIRECT, Constants.SCOPE);
        mSsoHandler = new SsoHandler(activity, mAuthInfo);
        return mSsoHandler;
    }

微博登陆跟页面绑定,每次使用时候使用的activity参数应该是当前页面。不能使用之前的单例。
大概是这个样子,还在研究,暂记。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,046评论 25 709
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,734评论 0 15
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 10,652评论 1 23
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 10,473评论 0 12
  • 文/菟丝草 石门山森林公园位于旬邑与铜川的交界,属于旬邑地界。天气晴朗,风和日丽,一大早,我们带着愉悦的心情,踏上...
    菟蕬草阅读 3,746评论 0 2