handler.post与UI

前一阵子调用线程的时候异步UI不更新,现在发现了问题:

</pre><pre name="code" class="java">handler.post(new Runnable() {
					@Override
					public void run() {
						try {
							
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});

handler.post 一个Runnable 接口时,由于只重写了run方法,没有调用start,

故,并没有启动新的线程,其实仍然可以看做在主线程中操作,

可以更新UI,但是,如果遇到耗时操作,UI界面就显现不出来了

结果就会导致卡顿的现象,用户体验极差,还得防止他们做奇葩操作.

两天没找到解决办法,后来查到资料,才知道是这个原因.

解决办法就是:再开一个thread

在thread 中调用handler.post.


开thread时,记得调用looper.prepare.


在A线程中for 循环读取cursor进行上传操作,由于是调用handler.post ,发现A先走完之后

for循环还没走完,接下来的for循环中的内容就不走了,所以得让A等待一下,之后再post下一个,

暂时没找到好的解决办法,只能在for循环中thread.sleep了.



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值