Android——模拟文件拷贝
模拟文件拷贝:
要求:要用progressDialog和子线程来模拟显示拷贝进度;进度完成后在主界面提示拷贝完成,分别使用普通方式和消息机制编写。
layout文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hanqi.testapp2.PractiseActivity6"
android:orientation="vertical"> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="文件拷贝__普通方式"
android:onClick="bt_kaobei1"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="文件拷贝__消息机制"
android:onClick="bt_kaobei2"/>
</LinearLayout>
java类:
package com.hanqi.testapp2; import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast; public class PractiseActivity6 extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_practise6);
}
public void bt_kaobei1(View v)
{
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setTitle("文件复制");
progressDialog.setMessage("复制中,请等待……");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setCancelable(false);
progressDialog.show();
new Thread(){
@Override
public void run() {
for (int i=0;i<=100;i++)
{
progressDialog.setProgress(i);
try {
Thread.sleep(3000);
}
catch (Exception e)
{ }
}
runOnUiThread(new Runnable() {
@Override
public void run() { Toast.makeText(PractiseActivity6.this, "文件拷贝完成", Toast.LENGTH_SHORT).show();
}
});
progressDialog.dismiss();
}
}.start();
}
Handler h = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what ==1)
{
final ProgressDialog progressDialog = new ProgressDialog(PractiseActivity6.this);
progressDialog.setTitle("文件复制");
progressDialog.setMessage("复制中,请等待……");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setCancelable(false);
progressDialog.show();
new Thread(){
@Override
public void run() {
for (int i=0;i<=100;i++)
{
progressDialog.setProgress(i);
try {
Thread.sleep(3000);
}
catch (Exception e)
{ }
}
runOnUiThread(new Runnable() {
@Override
public void run() { Toast.makeText(PractiseActivity6.this, "文件拷贝完成", Toast.LENGTH_SHORT).show();
}
});
progressDialog.dismiss();
}
}.start();
}
}
};
public void bt_kaobei2(View v)
{
new Thread(){
@Override
public void run() {
Message m = Message.obtain();
m.what = 1;
h.sendEmptyMessage(1);
}
}.start();
}
}
效果为:



Android——模拟文件拷贝的更多相关文章
- Android PRODUCT_COPY_FILES 自动拷贝文件
/********************************************************************** * Android PRODUCT_COPY_FILES ...
- 【Android】把外部文件拷贝的AVD安卓模拟器上的sdcard上,而且在AVD中浏览sdcard的文件
首先.实现这一切的大前提是.你的AVD安卓模拟器,在启动之前.有设置好sdcard的大小,例如以下图.同一时候,你的AVD安卓模拟器,要处于启动状态.否则无法运行例如以下的操作. 这里以<[An ...
- Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝
package com.example.administrator.myapplication.util; import java.io.BufferedReader;import java.io.B ...
- Android.mk 文件语法详解
0. Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build Syst ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- [Android Pro] android 混淆文件project.properties和proguard-project.txt
参考文档:http://blog.csdn.net/xueyepiaoling/article/details/8202359转载自:http://glblong.blog.51cto.com/305 ...
- Android.mk 文件语法详解 转:http://blog.sina.com.cn/s/blog_602f8770010148ce.html
0. Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build Syst ...
- Android.mk文件语法规范 原文
序言:------------- 此文档旨在描述Android.mk文件的语法,Android.mk文件为Android NDK(原生开发)描述了你C/C++源文件.为了明白下面的内容,你必须已经阅读 ...
- Android NDK开发之Android.mk文件
Android NDK开发指南---Android.mk文件 博客分类: Android NDK开发指南 Android.mk文件语法详述 介绍: ------------ 这篇文档是用来描述你的 ...
随机推荐
- tomcat 详解
首先搞清楚几个概念:Servlet容器与web容器.Servlet容器的主要任务是管理servlet的生命周期,而web容器更准确的说应该叫web服务器,它是来管理和部署web应用的.还有一种服务器叫 ...
- ASP.NET 分页控件
using System; using System.ComponentModel; using System.Web; using System.Web.UI; using System.Web.U ...
- 自定义的BroadCastReceiver
1.MainActivity2.java中的代码,主要是使用意图发送广播 public class MainActivity2 extends Activity{ @Override protecte ...
- keil(持续更新)
1函数格式提示 2 cording时有警告和错误提示 3 类的成员 提示
- iOS上架(转)
自己的经验总结,有错的话请留言,第一时间更改. 先大概说一下IOSAPP上架的几个步骤(详细步骤见下图): 创建证书请求文件 登录苹果开发者中心生成发布者证书(下载下来要双击一下) 设置APPID(要 ...
- ios 从网络上获取图片并在UIImageView中显示
ios 从网络上获取图片 -(UIImage *) getImageFromURL:(NSString *)fileURL { NSLog(@"执行图片下载函数"); UIIm ...
- Linux----快速注释包含特定字符串的行
常常会需要将程序中的输出语句注释,往往手工非常慢,而且容易漏. 今天研究了 linux 的 sed, 真心好用.. 例子: 将 包含 cout 的语句注释,也就是说包含cout 语句前加入字符串 / ...
- socket编程(Linux)
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览 ...
- iOS App提交指南-协议、税务和银行业务
App通过审核时,选择的是手动发布,想着等到自己生日那天来发布,当做留个纪念,结果生日当天发布时,由于App属于收费应用,还需要填写协议.税务和银行信息,结果又急急忙忙地去找了下这方面的资料,现在把整 ...
- HDU5441 Travel 并查集
http://acm.hdu.edu.cn/showproblem.php?pid=5441 无向图,n个点,m条带权边,q次询问,给出数值d,点a可以到点b当且仅当存在一条路线其中最大的权值不超过d ...