- 检查思路
- 源码逻辑和总结
在1.72基础上升级到1.8x的话,基本就是检查 manifest、jar、so 库了,代码改变不多,但是分离了出来了ysdkshell,记得加上。
问题:升级到最新版 YSDK1.81 后发现微信登录正常,但QQ登录后没有返回结果,猜测 onactivityresult 没有触发,因为1.72版本功能都是正常,一开始对比检查了所有配置和代码,也做了实验,发现都不是,那就只有 onActivityResult 的问题了。
(PS:问了官方技术,发非所问,还让自己去百度 onActivityResult 的用法,如果我是他们组 Leader,第一件事就是开了这新手二货 …)
源码逻辑和总结没办法,又是只能自己花时间去看了。
-
首先可以过滤 YSDK 和 openSDK_LOG 的日志和相关逻辑,然后直接看 onActivityResult 的打印,不过里面的接口管理看得头疼…
-
继续看,这里触发了 reqcode= 的逻辑:listener = null
-
进入了:UIListenerManager.getInstance()
- 获取数据,相关登录信息,这里会触发 onResume() 生命周期,但都没走到 usercallback,getLoginRecord 也没啥用……
归根结底,它走完自己逻辑获取完数据后就返回,从里面可以看到,声明周期都走了调起的 intent,也就是说不需要再主动调生命周期,调了也白调 ,onactivityresult 是例外,需要获取第三方回来的信息,毕竟微信的已经去掉了 onnewintent 的依赖。
总结: 所以如果你是弹窗一个 activity 来作为登录界面的话,就不能先finish,等待回调完成后再finish掉自己界面。
感兴趣的后续可以 关注下面专栏 或 公众号 【Python2048】
《安卓-黑客的世界》
《Bug 疑难杂症 | 不分语言》
作者:奥特曼超人Dujinyang
来源:CSDN
原文:https://dujinyang.blog.csdn.net/
版权声明:本文为博主杜锦阳原创文章,转载请附上博文链接!



