模拟文件拷贝

模拟文件拷贝:
要求:要用progressDialog和子线程来模拟显示拷贝进度;进度完成后在主界面提示拷贝完成,分别使用普通方式和消息机制编写。
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.example.wang.xuexi.CopyActivity"
11     android:orientation="vertical">
12 
13     <Button
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:text="拷贝"
17         android:onClick="bt_OnClick"/>
18 
19     <TextView
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:text="拷贝结果"
23         android:id="@+id/tv_2"/>
24 
25 
26 </LinearLayout>
.xml
 1 package com.example.wang.xuexi;
 2 
 3 import android.app.ProgressDialog;
 4 import android.os.Handler;
 5 import android.os.Message;
 6 import android.support.v7.app.AppCompatActivity;
 7 import android.os.Bundle;
 8 import android.view.View;
 9 import android.widget.TextView;
10 
11 public class CopyActivity extends AppCompatActivity {
12 
13     TextView tv_2;
14 
15     Handler h=new Handler(){
16         @Override
17         public void handleMessage(Message msg) {
18             super.handleMessage(msg);
19 
20             if (msg.what==100)
21             {
22                 String m=msg.obj.toString();
23 
24                 tv_2.setText(m);
25             }
26         }
27     };
28 
29     @Override
30     protected void onCreate(Bundle savedInstanceState) {
31         super.onCreate(savedInstanceState);
32         setContentView(R.layout.activity_copy);
33 
34         tv_2=(TextView)findViewById(R.id.tv_2);
35     }
36 
37     public void bt_OnClick(View v)
38     {
39         final ProgressDialog progressDialog=new ProgressDialog(this);
40 
41         progressDialog.setTitle("正在拷贝");
42         progressDialog.setMessage("请等待...");
43         progressDialog.setCancelable(false);
44 
45         progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
46 
47         progressDialog.show();
48 
49         new  Thread(new Runnable() {
50             @Override
51             public void run() {
52 
53                 for (int i=0;i<=100;i++)
54                 {
55                     progressDialog.setProgress(i);
56 
57                     try {
58 
59                         Thread.sleep(200);
60                     }catch (Exception e){
61 
62                     }
63                 }
64 
65 
66                 runOnUiThread(new Runnable() {
67                     @Override
68                     public void run() {
69 
70 //                        tv_2.setText("拷贝完成");
71 
72                         Message m=Message.obtain();
73                         m.what=100;
74                         m.obj="拷贝完成";
75                         h.sendMessage(m);
76 
77                     }
78                 });
79 
80                 progressDialog.dismiss();
81 
82             }
83         }).start();
84 
85 
86 
87     }
88 }
.java

原文地址:https://www.cnblogs.com/arxk/p/5504431.html