您的位置:首页 > 其它

ProgressDialog和Thread结合处理耗时操作

2011-02-15 16:45 134 查看
做过Android开发的都碰到过"程序无响应,是否强制关闭"这类UI假死或提示强制关闭的问题,这就是在UI线程中处理了耗时的操作,超过了5s,Android处理耗时操作经常会出现这种情况。可以通过ProgressDialog和Thread结合处理耗时操作,将耗时的操作从UI线程中移到一个新的线程中,这样就不会阻塞UI线程。

public class ProgressDialogTest extends Activity{
	
	 ProgressDialog progressDialog=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		progressDialog=ProgressDialog.show(this,"Title","Content",true);
		thread.start();	
	}
	
	final Handler handler=new Handler(){
		@Override
		public void handleMessage(Message msg) {
			progressDialog.dismiss();
			super.handleMessage(msg);
		}
	};
	
	Thread thread=new Thread(){
		public void run() {
			//这里处理耗时操作,比如文件下载等等
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			handler.sendEmptyMessage(0);
		};
	};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: