【Android开发】一闪而过的ProgressDialog

最近学习Android开发,希望点击按钮后,在后台开一个线程,读取sd卡上的一个文件。
由于文件比较大,因此想用ProgressDialog来提示"加载中...",但是不论如何编写,都会出现一个怪问题:
程序运行,等待一段时间之后,ProgressDialog对话框一闪就消失了。

通过调试发现,是在文件读完之后才显示的ProgressDialog,不论怎么修改都不行。

百思不得其解,上网查了好久,终于找到一个外国的帖子,回帖中给出了答案,原文如下:
Your join() line blocks the UI thread that runs the ProgressDialog. You are therefore blocking layouts, drawings, etc.

 

原来是因为我使用了Thread的join()方法造成的,查了一下帮助,join()的作用如下:

Blocks the current Thread (Thread.currentThread() ) until the receiver finishes its execution and dies.

 

由于我调用了join方法,导致UI线程阻塞了,而ProgressDialog是UI线程运行的,因此造成ProgressDialog弹不出来,而文件还是可以读取。

 

原先我是想通过join确保文件读取线程结束后,再进行之后的处理,没有ProgressDialog对话框的话就不会有问题,但是有ProgressDialog,就得换一种方式,通过Handle的方式传递消息来实现,具体网上很多我就不贴了。

 

立此贴以做备份~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值