热门IT资讯网

ProgressDialog+Thread实现弹出进度条数据异步加载(配有效果图)

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,//添加异步操作m_Dialog=ProgressDialog.show(m_context, "请等待...", "正在下载安装文件,请稍后...",true);//mRegsiterHandler

//添加异步操作

m_Dialog=ProgressDialog.show(m_context, "请等待...", "正在下载安装文件,请稍后...",true);

//mRegsiterHandler.sleep(100);

new Thread(new Runnable(){


@Override

public void run() {

//加载数据

result=0;

try{

//下载文件

String url="http://00.00.00.00:80/nationaltest.html";

HttpClient client = new DefaultHttpClient();

HttpGet get = new HttpGet(url);

HttpResponse response;


response = client.execute(get);

HttpEntity entity = response.getEntity();

long length = entity.getContentLength();

InputStream is = entity.getContent();

FileOutputStream fileOutputStream = null;

if (is != null) {

File file = new File(Environment.getExternalStorageDirectory(), "nationaltest.apk");

fileOutputStream = new FileOutputStream(file);

byte[] buf = new byte[1024];

int ch = -1;

while ((ch = is.read(buf)) != -1) {

fileOutputStream.write(buf, 0, ch);

}

}

fileOutputStream.flush();

if (fileOutputStream != null) {

fileOutputStream.close();

}

result=2;

}

catch(Exception ex){

result=-1;

}


//更新界面

// Update the progress bar

mHandler.post(new Runnable() {

public void run() {

if(result==2)

install();

else

Toast.makeText(m_context, "下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show();

}

});



m_Dialog.dismiss();

}}).start();


}


0