Android——模拟文件拷贝

模拟文件拷贝:
要求:要用progressDialog和子线程来模拟显示拷贝进度;进度完成后在主界面提示拷贝完成,分别使用普通方式和消息机制编写。

layout文件:

 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.hanqi.testapp2.PractiseActivity6"
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_kaobei1"/>
18     <Button
19         android:layout_width="match_parent"
20         android:layout_height="wrap_content"
21         android:text="文件拷贝__消息机制"
22         android:onClick="bt_kaobei2"/>
23 </LinearLayout>

java类:

  1 package com.hanqi.testapp2;
  2
  3 import android.app.ProgressDialog;
  4 import android.os.Bundle;
  5 import android.os.Handler;
  6 import android.os.Message;
  7 import android.support.v7.app.AppCompatActivity;
  8 import android.view.View;
  9 import android.widget.Toast;
 10
 11 public class PractiseActivity6 extends AppCompatActivity {
 12
 13     @Override
 14     protected void onCreate(Bundle savedInstanceState) {
 15         super.onCreate(savedInstanceState);
 16         setContentView(R.layout.activity_practise6);
 17     }
 18     public void bt_kaobei1(View v)
 19     {
 20         final ProgressDialog progressDialog = new ProgressDialog(this);
 21         progressDialog.setTitle("文件复制");
 22         progressDialog.setMessage("复制中,请等待……");
 23         progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
 24         progressDialog.setCancelable(false);
 25         progressDialog.show();
 26         new Thread(){
 27             @Override
 28             public void run() {
 29                 for (int i=0;i<=100;i++)
 30                 {
 31                     progressDialog.setProgress(i);
 32                     try {
 33                         Thread.sleep(3000);
 34                     }
 35                     catch (Exception e)
 36                     {
 37
 38                     }
 39                 }
 40                 runOnUiThread(new Runnable() {
 41                     @Override
 42                     public void run() {
 43
 44                         Toast.makeText(PractiseActivity6.this, "文件拷贝完成", Toast.LENGTH_SHORT).show();
 45                     }
 46                 });
 47                 progressDialog.dismiss();
 48             }
 49         }.start();
 50     }
 51     Handler h = new Handler(){
 52         @Override
 53         public void handleMessage(Message msg) {
 54             super.handleMessage(msg);
 55             if (msg.what ==1)
 56             {
 57                 final ProgressDialog progressDialog = new ProgressDialog(PractiseActivity6.this);
 58                 progressDialog.setTitle("文件复制");
 59                 progressDialog.setMessage("复制中,请等待……");
 60                 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
 61                 progressDialog.setCancelable(false);
 62                 progressDialog.show();
 63                 new Thread(){
 64                     @Override
 65                     public void run() {
 66                         for (int i=0;i<=100;i++)
 67                         {
 68                             progressDialog.setProgress(i);
 69                             try {
 70                                 Thread.sleep(3000);
 71                             }
 72                             catch (Exception e)
 73                             {
 74
 75                             }
 76                         }
 77                         runOnUiThread(new Runnable() {
 78                             @Override
 79                             public void run() {
 80
 81                                 Toast.makeText(PractiseActivity6.this, "文件拷贝完成", Toast.LENGTH_SHORT).show();
 82                             }
 83                         });
 84                         progressDialog.dismiss();
 85                     }
 86                 }.start();
 87             }
 88         }
 89     };
 90     public void bt_kaobei2(View v)
 91     {
 92         new Thread(){
 93             @Override
 94             public void run() {
 95                 Message m = Message.obtain();
 96                 m.what = 1;
 97                 h.sendEmptyMessage(1);
 98             }
 99         }.start();
100     }
101 }

效果为:

时间: 2024-11-09 02:44:12

Android——模拟文件拷贝的相关文章

1.模拟文件拷贝:

要求:要用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

.模拟文件拷贝:

package com.hanqi.testapp22; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import android.widget.Toas

【Android】把外部文件拷贝的AVD安卓模拟器上的sdcard上,并且在AVD中浏览sdcard的文件

首先,实现这一切的大前提是,你的AVD安卓模拟器,在启动之前,有设置好sdcard的大小,如下图.同时,你的AVD安卓模拟器,要处于启动状态.否则无法执行如下的操作. 这里以<[Android]利用adt-bundle在Windows下轻松搭建Android开发环境与Hello world>(点击打开链接)在Windows中安装出来的安卓开发环境为例. 一.把外部文件拷贝的AVD安卓模拟器上的sdcard上 1.在AVD成功开机之后,你先要通过Window->Open Persperct

Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝

package com.example.administrator.myapplication.util; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.F

Android NDK开发指南---Application.mk文件和android.mk文件

https://android.googlesource.com/platform/development/+/donut-release/ndk/docs/OVERVIEW.TXT https://android.googlesource.com/platform/ndk/+/4e159d95ebf23b5f72bb707b0cb1518ef96b3d03/docs/ANDROID-MK.TXT https://android.googlesource.com/platform/ndk/+/4

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

[Google Android] 理解NDK(1)-- 编译Android .so文件

原帖地址:http://www.cnblogs.com/tamer/archive/2011/01/18/1938307.html 说白了就是c代码做成动态库,被java代码调用(JNI).用C写不出可以直接在Android上跑的可执行程序来. NDK开发需要一个交叉编译环境,需要安装Cygwin, NDK. 这些准备工作就不说了网上很多,当然也可以问我. 讲一下.so文件的生成 ----------------------------------------------------------

Android.mk 文件语法详解

转:http://blog.sina.com.cn/s/blog_602f8770010148ce.html ===================================================================================== 0. Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次

Android.mk文件详解(转)

源:Android.mk文件详解 从对Makefile一无所知开始,折腾了一个多星期,终于对Android.mk有了一个全面些的了解.了解了标准的Makefile后,发现Android.mk其实是把真正的Makefile包装起来,做成了一个对使用者来说很简单的东西.使用它来编译程序时,不管是动态库.可执行的二进制文件,还是Jar库.APK包,只要沿着一个简单的思路来做三大步就可以了:清除旧变量,设置新变量,调用编译函数. 明白了以后,发现Makefile语法不是问题,有很多教程和高手.编译模块时