首页 > 代码库 > 模拟下载
模拟下载
主界面有个开始下载按钮,点击按钮以后开始模拟下载
界面布局:
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context="com.example.d27.MainActivity" >10 11 <Button12 android:id="@+id/button1"13 android:layout_width="match_parent"14 android:layout_height="wrap_content"15 android:layout_alignParentLeft="true"16 android:layout_alignParentTop="true"17 android:text="开始下载"18 android:onClick="onClick" />19 20 </RelativeLayout>
java部分代码如下:
1 package com.example.d27; 2 3 import android.app.Activity; 4 import android.app.ProgressDialog; 5 import android.os.Bundle; 6 import android.os.Handler; 7 import android.os.Message; 8 import android.view.View; 9 import android.widget.Toast;10 11 public class MainActivity extends Activity {12 private ProgressDialog dialog;13 private Handler handler = new Handler() {14 public void handleMessage(Message msg) {15 switch (msg.what) {// 判断消息16 case 1:17 dialog.show();// 显示dialog18 break;19 case 2:20 dialog.setMax(msg.arg2);// 设置dialog的最大值21 dialog.setProgress(msg.arg1);// 设置进度条22 dialog.setMessage("正在下载第" + msg.arg1 + "部分");// 设置内容23 break;24 case 3:25 dialog.dismiss();// 不显示dialog26 Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT)27 .show();// 通知下载完成28 break;29 }30 };31 };32 33 @Override34 protected void onCreate(Bundle savedInstanceState) {35 super.onCreate(savedInstanceState);36 setContentView(R.layout.activity_main);37 // 初始化dialog38 initDialog();39 }40 41 // 初始化ProgressDialog42 private void initDialog() {43 // 创建dialog44 dialog = new ProgressDialog(this);45 // 设置dialog的样式为水平46 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);47 // 设置图标48 dialog.setIcon(android.R.drawable.ic_dialog_info);49 // 设置标题50 dialog.setTitle("正在下载");51 // 设置内容52 dialog.setMessage("");53 // 设置是否可以取消dialog54 dialog.setCancelable(false);55 }56 57 //开始下载按钮点击事件58 public void onClick(View view) {59 // 开启工作线程模拟下载,并发送消息给主线程更新界面60 new Thread(new Download()).start();61 }62 63 class Download implements Runnable {64 65 @Override66 public void run() {67 // 发送消息让主线程显示dialog68 handler.sendEmptyMessage(1);69 for (int i = 0; i <= 10; i++) {70 // 发送消息让主线程更新进度条71 handler.obtainMessage(2, i, 10).sendToTarget();72 try {73 // 当前线程休眠1秒来模拟下载74 Thread.sleep(1000);75 } catch (InterruptedException e) {76 e.printStackTrace();77 }78 }79 // 下载完成,发送消息给主线程80 handler.sendEmptyMessage(3);81 }82 83 }84 }
---恢复内容结束---
模拟下载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。