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

news/2024/7/1 20:58:51

效果图

 

 

 

实现说明

 

   实现流程

 

  Step One 弹出进度条对话框

 

  Step Two 执行线程,在线程中实现数据的异步加载

 

  Step Three 在线程数据加载完成后,调用Handler并集合数据,更新界面

 

 

 

3源码

 

 

复制代码
//添加异步操作  
m_Dialog=ProgressDialog.show(m_context, "请等待...", "正在下载安装文件,请稍后...",true);
//mRegsiterHandler.sleep(100);
new Thread(new Runnable(){

@Override
publicvoid 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 =newbyte[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() {
publicvoid run() {
if(result==2)
install();
else
Toast.makeText(m_context,
"下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show();
}
});


m_Dialog.dismiss();
}}).start();

}
复制代码

 

 


http://www.niftyadmin.cn/n/2502370.html

相关文章

NHibernate一对多映射保存数据

Iesi.Collections.Generic.Iset<T>使用Iset集合中&#xff0c;每个对象唯一。 在NHibernate中&#xff0c;在父类中对应子类的Iset集合时&#xff0c;因为Set类为抽象类&#xff0c;所以不能实例化Set类。 Iset<T> listnew Set<T>()将报‘无法创建抽象类或接…

2012.09月面试五十题

转自&#xff1a;http://blog.csdn.net/v_july_v/article/details/7974418 九月十月百度人搜&#xff0c;阿里巴巴&#xff0c;腾讯华为小米搜狗笔试面试五十题 &#xff08;欢迎加入十月面试题集训组&#xff0c;参与讨论&解题&#xff1a;193308452&#xff09;引言 自发…

Linux Wake-On-Lan(wol)

Wake-On-Lan 網路開機介紹 網路開機顧 名思義就是透過 Ethernet 進行開機動作&#xff0c;這需要硬體與BIOS的支援&#xff0c;目前市面上的主機板所內建的網路卡都能支援。假設您的網路介面不是採用主機板內建晶片&#xff0c;而是採用傳統的網路 卡&#xff0c;那麼通常需要透…

使用Javascript写一组图片的缓冲运动

一、先来了解一下为什么要学习运动框架呢 在我们web开发中过程中&#xff0c;一些特效的使用&#xff0c;比如&#xff1a;导航条中滑动的动画特效、点击加入购物车按钮有抛物线的特效&#xff0c;还有一些小游戏的开发等&#xff0c;就需要我们对动画的基础运动掌握的足够扎实…

认识cookie会话跟踪技术

一、cookie的概念 在一次会话从开始到结束的整个过程&#xff0c;全程跟踪记录客户端的状态&#xff08;例如&#xff1a;是否登录、购物车信息、是否已下载、是否已点击、视频播放进度等&#xff09; 二、cookie的组成 cookie由名/值对形式的文本组成&#xff1a;namevalue 完…

java线程安全理解

如果你的代码所在的进程中有多个线程在同时运行&#xff0c;而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的&#xff0c;而且其他的变量的值也和预期的是一样的&#xff0c;就是线程安全的。比如一个 ArrayList 类&#xff0c;在添加一个元素的…

cookie的封装及应用

最原始代码 var person {name: "小明",age: 18,sex: 男}//直接把整个对象当做参数传入function showSelf(obj){alert("我叫" obj.name , 今年 obj.age "岁,是" obj.sex "的");}// showSelf(person);showSelf({name: "小明…

PHP教程:php导入到excel-支持utf8和gbk两种编码

php导入到excel-支持utf8和gbk两种编码 php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了 utf-8编码案例 <?php header(Content-Type: application/vnd.ms-excel; charsetUTF-8); header(Pragma: public); header(Expires: 0); …