- 浏览: 62675 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
多线程实现更新android进度条。
实例教程,详细信息我已经注释
package com.shougao.hello;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
public class HelloActivity extends Activity {
/** Called when the activity is first created. */
private ProgressBar progressBar;
private Button startButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
startButton = (Button) findViewById(R.id.startButton);
startButton.setOnClickListener(new ProgressBarOnClickListener());
}
class ProgressBarOnClickListener implements OnClickListener {
public void onClick(View v) {
// 设置进度条为可见状态
progressBar.setVisibility(View.VISIBLE);
// 添加updataThread到消息队列
updateBarHandler.post(updateThread);
}
}
// 使用匿名内部类来复写Handler当中的handlerMessage()方法
// 这个handler是需要反复执行的,直到消息队列中没有Message为止。
// 执行过程中把进度条就刷新了。
Handler updateBarHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
System.out.println("----------start handle");
progressBar.setProgress(msg.arg1);
updateBarHandler.post(updateThread); // 将要执行的线程放入到队列当中
}
};
// 线程类,该类使用匿名内部类的方式进行声明
Runnable updateThread = new Runnable() {
int i = 0;
public void run() {
// TODO Auto-generated method stub
System.out.println("----------Begin Thread");
i += 20;
// 得到一个消息对象,Message类是android系统提供的
Message msg = updateBarHandler.obtainMessage();
// 将Message对象的arg1参数的值设置为i
msg.arg1 = i; // 用arg1、arg2这两个成员变量传递消息,优点是系统性能消耗较少
try {
Thread.sleep(3000); // 让当前线程休眠1000毫秒
} catch (InterruptedException ex) {
ex.printStackTrace();
}
// 将Message对象加入到消息队列当中,等下次looper调用消息队列时,使用这个message显示进度条
// 或者说,把增加了10%的进度信息Message放到updateBarHandler的队列中。
if (i < 101){
updateBarHandler.sendMessage(msg);
}
// 如果i的值等于100
if (i == 100) {
// 将线程对象从队列中移除
updateBarHandler.removeCallbacks(updateThread);
}
}
};
}
实例教程,详细信息我已经注释
package com.shougao.hello;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
public class HelloActivity extends Activity {
/** Called when the activity is first created. */
private ProgressBar progressBar;
private Button startButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
startButton = (Button) findViewById(R.id.startButton);
startButton.setOnClickListener(new ProgressBarOnClickListener());
}
class ProgressBarOnClickListener implements OnClickListener {
public void onClick(View v) {
// 设置进度条为可见状态
progressBar.setVisibility(View.VISIBLE);
// 添加updataThread到消息队列
updateBarHandler.post(updateThread);
}
}
// 使用匿名内部类来复写Handler当中的handlerMessage()方法
// 这个handler是需要反复执行的,直到消息队列中没有Message为止。
// 执行过程中把进度条就刷新了。
Handler updateBarHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
System.out.println("----------start handle");
progressBar.setProgress(msg.arg1);
updateBarHandler.post(updateThread); // 将要执行的线程放入到队列当中
}
};
// 线程类,该类使用匿名内部类的方式进行声明
Runnable updateThread = new Runnable() {
int i = 0;
public void run() {
// TODO Auto-generated method stub
System.out.println("----------Begin Thread");
i += 20;
// 得到一个消息对象,Message类是android系统提供的
Message msg = updateBarHandler.obtainMessage();
// 将Message对象的arg1参数的值设置为i
msg.arg1 = i; // 用arg1、arg2这两个成员变量传递消息,优点是系统性能消耗较少
try {
Thread.sleep(3000); // 让当前线程休眠1000毫秒
} catch (InterruptedException ex) {
ex.printStackTrace();
}
// 将Message对象加入到消息队列当中,等下次looper调用消息队列时,使用这个message显示进度条
// 或者说,把增加了10%的进度信息Message放到updateBarHandler的队列中。
if (i < 101){
updateBarHandler.sendMessage(msg);
}
// 如果i的值等于100
if (i == 100) {
// 将线程对象从队列中移除
updateBarHandler.removeCallbacks(updateThread);
}
}
};
}
发表评论
-
android 备用
2014-08-03 13:26 417http://blog.csdn.net/rain_butte ... -
Android中px与dip,sp与dip等的转换工具类(转)
2014-07-16 20:07 569http://www.cnblogs.com/wader201 ... -
android 字体总结
2014-07-15 21:53 522Android提供三种字体:“Sans”,“serif“和“m ... -
mina
2014-07-03 14:12 477http://chwshuang.iteye.com/blog ... -
android获取IMEI
2014-06-17 08:34 502核心代码: Imei = ((TelephonyMan ... -
andorid ui
2014-06-04 22:39 0http://blog.csdn.net/ddddpow/ar ... -
android alarmManage
2014-05-28 21:47 665转自:http://jinguo.iteye.com/bl ... -
adaf
2014-05-27 22:32 0http://www.eoeandroid.com/thr ... -
weixin
2014-05-13 22:42 0android weisixn -
jpajpa
2014-01-28 15:06 483http://www.iteye.com/problems/9 ... -
吉安帕
2014-01-23 22:30 0dfsgdaffgadrgad -
CrudRepository
2013-11-28 19:58 0PagingAndSortingRepository Cr ... -
Android 的第三方报表组件,AChartEngine 案列
2013-08-19 16:48 0http://www.kuaipan.cn/file/id_3 ... -
android sdk adress
2013-08-12 13:23 447developer.android.com/sdk/index ... -
android 结束进程
2013-07-29 22:01 701Android获取apk的版本及包名等信息 http://bl ... -
adnroid 4.0.3去掉虚拟导航栏
2013-07-27 20:54 1009http://blog.csdn.net/wfh1988/ar ... -
andorid全屏
2013-07-27 10:15 766super.onCreate(savedIns ... -
Foursquare
2012-10-12 17:22 0Foursquare -
sqllite brower
2012-09-11 23:05 639http://www.oschina.net/p/sqlite ... -
notice
2012-09-03 21:13 668http://tibaloga.iteye.com/blog/ ...
相关推荐
1.给进度调设置最大值 2.无论哪一个线程下载都要记录进度条当前位置,并设置值 3.给textview设置显示当前下载值 4.创建临时文件把以前下载好的位置记录起来 5.当线程下载完后删除临时保存进度条位置的文件
Android 多线程下载进度条 demo src
http://blog.csdn.net/sky286753213/article/details/11770299
多线程断点续传带进度条 android web
本文实例讲述了Android编程开发实现带进度条和百分比的多线程下载。分享给大家供大家参考,具体如下: 继上一篇《java多线程下载实例详解》之后,可以将它移植到我们的安卓中来,下面是具体实现源码: DownActivity....
android 多线程下载例子,多文件显示下载进度条,进度条实时更新,学习用的好例子
Android 进行文件分段多线程下载的实例,用户可以指定线程数,还可以通过进度条查看下载的进度。
使用多线程实现的一个下载工具,可以实现多线程下载,带进度条,显示下载进度,适合开发者植入模块。
android有android多线程下载 android有进度条下载 android有速度检查下载,共享给大家!希望对大家有帮助!如有问题,请联系我:Email:vipa1888@163.com QQ:840950105
主要介绍了Android多线程+单线程+断点续传+进度条显示下载功能,需要的朋友可以参考下
4、多线程下载:使用RandomAccessFile输出流写 5、多线程下载-断点续传:使用临时文件记录当前下载的数据,下次读取文件开始下载 6、下载显示进度条-ProgressBar 7、在gitbub上面下载已经有支持断点续传功能的代码...
android多线程断点下载,带进度条和百分比显示,断点下载的临时数据保存到SD卡的文本文档中,建议可以保存到本地数据库中,这样可以提高存取效率,从而提高系统性能。 效果: 打开软件: 下载中: 下载完毕: 附...
Android 多线程下载的Demo 实时更新进度条百分比
Android多线程断点续传下载,可以应付各种网络中断,应用退出,支持暂停、进度条
利用idhttp进行多线程下载,带进度条显示,可以暂停下载和继续下载,未使用第三方控件,在delphi xe7下测试通过。 昨天发的代码发现一个bug,就是无论几线程,都是从文件首部开始下载,才发现xe7下idhhtp控件的...
Android 实现的自定义CircleProgress 圆形、圆环进度条实例源码,本源码一共演示了7种实心、圆环形的进度条,单击按钮... 本源码中的注释丰富,可让你学会如何制作类似的圆心、圆形的Android进度条,源码完整可编译。
该代码是使用Androidstudio编写的,是一个多线程进度条程序,程序已通过调试,没有错误。
这是一个在listview或gridview中选项同时分别下载文件的demo。 每个选项进度条分别更新进度。