以后想多积累这些典型bug,一是方便自己回溯问题,二是以后再遇到类似问题可以尽量避免踩坑~
这个版本的需求是接入华为支付。华为支付的话需要客户端接入华为支付SDK。其中华为service需要在我们的app启动时予以启动和初始化。然后在我们的app退出后终止。测试过程中发现bug是,之前app进行华为支付很顺利,但是当快速地退出app再重新打开app后,无法调起华为支付了。
原因经过排查后发现,是出在我们退出app的操作。客户端代码退出app时,会关闭Application,也会关闭华为Service。但是我们app的代码,在退出时,自己的Application中会延迟1秒钟销毁系统Application。所以问题就在于我们快速地退出app后再重新打开app,这期间的时间间隔少于1秒钟。所以不需要再初始化我们的Application了,从而没有了onCreate中对华为service的启动。进而导致无法唤起华为支付。
解决这个问题的办法是,调整这个时间间隔,比如缩小,但是隐藏的问题难以预知。需要测试。另外比较快捷的方式是,在退出app的时候不去关闭华为service。目前我们采用了后面这种快捷的解决方式,经过测试,没有发现异常问题。
网友评论