实现流程
Step One d出进度条对话框
Step Two 执行线程,在线程中实现数据的异步加载
Step Three 在线程数据加载完成后,调用Handler并集合数据,更新界面
Java代码
//添加异步 *** 作
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条)