问题描述:
业务上初始化过程要求显示闪屏界面, 某个版本更新后, 发现部分场景下, 初始化完成后闪屏界面不消失.
问题原因:
初始化是在子线程进行, 闪屏属于 UI 界面, 需要 UI 线程展示. 初始化过程和闪屏显示在不同线程, UI 线程忙碌的时候, 会出现业务的初始化已经执行完成, 闪屏界面才真正显示.
解决措施:
方案一: 将闪屏展示改为初始化过程的一个同步环节, 阻塞当前线程直到闪屏展示才继续执行.-- 有损失
方案二: 闪屏展示保持异步, 但是需要在闪屏界面展示时机增加判断, 若初始化已经完成, 则直接关闭界面.
来源: http://www.bubuko.com/infodetail-2601475.html