最近项目要加一个微信登录的功能,由于以前其他项目使用过微信登录,而且该在的东西都在,所以加入微信登录也是三下五除二的很快加入了。但是我发现一个小细节,微信登录时,无论是授权完成还是点击取消登录,回来都有一个白屏--->黑屏--->登录界面跳起恢复的效果,作为开发者遇到这样的情况真是有点犯怵,还以为app要崩了呢。然后随手打开了一个app,有道词典看看他们的微信登录界面跳转很自然平滑,证明这个问题是可以优化的,肯定是代码有点问题。

我就尝试着去找原因:首先登录取消都没问题,也没有崩溃,证明逻辑代码没什么问题,中间唯一不受我们控制的界面就是微信的WXEntryActivity界面,这个界面是微信来处理接受登录,分享等结果的。我就想是不是这个界面停留的时间太长了,看了一下代码没有耗时代码,传递信息后直接就this.finish();了,然后我就想是不是主题的原因,我索性将这个界面的主题设置为透明的

android:label="@string/app_name"

android:exported="true"

android:theme="@android:style/Theme.Translucent"

android:screenOrientation="portrait"/>

再次试了一下效果果然自然平滑了

demo图片:

5ea14b690f69779e0c18fac941654eb9.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐