今天自定义了一个dialog,来实现像系统的progressDialog的功能,布局什么都是小case了,会android的都会,那么现在就来说说遇到的这个卡顿现象。 因为这个dialog是用来显示下载的进度,并且显示时时的下载字节数,所以每次下载后,都会去更新textview的值,因为下载都是在子线程中执行的,所以更新textview只有采用handler或者runOnThread的方式去更新,这里我采用的是handler的post的方式去更新的,但是发现每次更新的时候,textview都会卡一会才会分更新,并且连progressBar也是卡顿一会儿,如果把textview关闭了,或者不更新textview,那么progresbar显示的进度都正常了。
问题猜测:可能是因为更新的速度非常快,而我采用的是handler的post的方式,那么是不是setProgress的时候,都会在handler的queue队列中添加一条数据,这样就会导致每次最新的数据都不能及时的更新到textview中去。
解决方法:在每次更新textview或者更新dialog界面所需要更新的数据后,就把handler queue队列中的数据都全部移除,那么下次进来的时候就会采用到最新的数据到dialog的界面上了。