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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红米4刷机失败怎么办 红米手机开不了机怎么办 红米not开不了机怎么办 红米2开不起机怎么办 小米手机免提声音小怎么办 红米手机1s黑屏怎么办 红米2完全黑屏怎么办 红米note3接电话黑屏怎么办 红米note3死机黑屏怎么办 红米note2开机之后黑屏怎么办 红米手机白屏怎么办 红米4黑屏打不开怎么办 oppo手机拨打电话时黑屏怎么办 华为手机拨打电话时黑屏怎么办 小米6x拨电话黑屏怎么办 魅族手机打电话黑屏怎么办 三星手机拨打电话时黑屏怎么办 华为畅享5打电话黑屏怎么办 小米note通话声音小怎么办 金立m5黑屏开不了机怎么办 金立手机光感器坏了怎么办 红掌根部烂了怎么办 魅族相册闪退怎么办 魅族手机闪退怎么办 苹果6手机主页面打不开怎么办 手机中病毒闪退怎么办 酷派手机开机黑屏怎么办啊 酷派手机黑屏打不开怎么办 酷派手机不开机怎么办 乐视手机开不了机怎么办 vivo手机拨号键盘不见了怎么办 华为手机拨号键盘不见了怎么办 金立手机拨号键盘不见了怎么办 酷派手机home键失灵怎么办 r11屏碎一半黑屏怎么办 金立手机黑屏打不开怎么办 小米8se自动跳出广告怎么办 小米手机总跳出广告怎么办 小米手机总是出现广告怎么办 红米1s开机黑屏怎么办 红米手机打电话黑屏怎么办