MessageQueue.addIdleHandler和progressbar的爱恨情仇

408 阅读1分钟

最近在项目在发现一个较坑的地方。特此记录

就是 progressdialog(progressbar) 和 MessageQueue.addIdleHandler 搭配使用会存在问题

具体描述: 在系统版本24(26、27正常,25没有测)等以下的机型会出现界面使用progressdialog(或progressbar)会导致MessageQueue.addIdleHandler里面设置的代码不会执行。

简单代码截图:

实例代码
上图的红色代码执行后会导致绿色代码不会执行。

然后尝试 alertdialog 代替 progressdialog ,同样,只要alertdialog使用了 progressbar 这个控件同样会出现刚刚的问题。

错误
正确

可以初步定位到是 progressbar 的问题。具体没有找到是什么问题。不过现在机型版本大部分都是6.0、7.0左右,故最后不要这样搭配使用。(8.0测试和一些国产机测试正常了)