Android下载进度条,一个通俗易懂案例
来源:互联网 发布:java字节转为字符串 编辑:程序博客网 时间:2024/05/21 15:51
<pre name="code" class="java"><pre name="code" class="plain">这里我只贴上activity代码,相关的注释,看代码里面的就可以了。
package org.lxh.demo; import org.lxh.demo.R;import android.app.Activity;import android.app.ProgressDialog;import android.content.DialogInterface;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.Toast;public class Demo extends Activity { private Button btnDownload;private Thread thread;private ProgressDialog diaProgress;private String isInterrupted;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.main); btnDownload = (Button) findViewById(R.id.download_btn);btnDownload.setOnClickListener(new OnClickListenerImpl()) ; }private class OnClickListenerImpl implements OnClickListener {@Overridepublic void onClick(View view) {isInterrupted = "N";diaProgress = new ProgressDialog(Demo.this);diaProgress.setTitle("Download"); //设置标题diaProgress.setMessage("Please wait..."); //设置提示文字diaProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //进度条的风格-水平diaProgress.setProgress(0); //初始进度值diaProgress.setMax(100); //最大的进度值//第一个按钮监听,隐藏diaProgress.setButton("Hide",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//虽然进度条隐藏了,但不代表“下载”有结果diaProgress.dismiss();}});//第二个按钮监听,取消diaProgress.setButton2("Cancel",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {diaProgress.dismiss();sendMsg(3);sendMsg(2); //这里的暂停方法,不是很理解,但网上都这么说,大家有什么看法,可以交流下sendMsg(1);}});diaProgress.onStart(); //进度条开始执行工作 //设置线程thread = new Thread(new Runnable() {@Overridepublic void run() {int i = 0;while(i != 100){ if(isInterrupted.equals("Y")){break;}try {//暂停0.5秒,纯属为了模拟效果,当然实际的做法不是这样的Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace();}diaProgress.incrementProgressBy(1);i += 1;}diaProgress.dismiss();sendMsg(0);}});thread.start();diaProgress.show(); //进度条开始显示(实际到这里才开始真正工作)}}private Handler handler = new Handler() {public void handleMessage(Message msg) {diaProgress.dismiss();switch (msg.what) {case 0:Toast.makeText(Demo.this, "download successfully",Toast.LENGTH_LONG).show();break;case 1:Toast.makeText(Demo.this,"download has been interrupted", Toast.LENGTH_LONG).show();break;case 2:// stop the threadthread.interrupt();break;case 3:isInterrupted = "Y";default:break;}}};private void sendMsg(int flag) {Message msg = new Message();msg.what = flag;handler.sendMessage(msg);}}
demo请看:点击打开链接
0 0
- Android下载进度条,一个通俗易懂案例
- Android更新下载进度条
- android 下载 进度条
- Android更新下载进度条
- android 下载进度条
- Android更新下载进度条
- Android百分比下载进度条
- android下载的进度条
- Android百分比下载进度条
- Android下载服务案例
- Android 下载文件 进度条显示
- Android 下载文件 显示进度条
- android 下载进度条的实现
- Android 下载文件 显示进度条
- Android 下载文件 进度条显示
- android-downloader_一个带进度条的下载开源框架源码解析(雷惊风)
- android断点下载器案例
- android 多线程下载文件案例
- 扩展欧几里德算法
- C++多态性分析之虚函数表
- HDU1799 循环多少次?【找规律】
- RadASM如何编辑资源并使用资源
- 高仿京东商品放大镜js
- Android下载进度条,一个通俗易懂案例
- 【二叉树之遍历的应用】HDU 1710---Binary Tree Traversals
- android 4.4 Settings分析
- CDOJ-#149 解救小Q(BFS)
- POJ 1195 Mobile phones (二维树状数组)
- nxyl4y tqx40
- hdu1799 循环多少次?
- spmh9x qgg41
- MFC 多线程 用户界面线程创建