博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扫描SD卡异步任务new AsyncTask<Integer, Integer, String>()
阅读量:2299 次
发布时间:2019-05-09

本文共 3258 字,大约阅读时间需要 10 分钟。

package com.ouling.ex_SDAsyncTask;import java.io.File;import java.util.ArrayList;import java.util.List;import java.util.regex.Pattern;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.Context;import android.content.Intent;import android.os.AsyncTask;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class Ex_SDAsyncTaskActivity extends Activity {	final String TAG="ASYNCTASK";	List
filelist; // 搜索到的文件 EditText editText; Button btn_search; Context context; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); context = this; editText = (EditText) findViewById(R.id.edit); btn_search = (Button) findViewById(R.id.serch); filelist = new ArrayList
(); btn_search.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Log.i(TAG, "onclik start Thread id "+Thread.currentThread().getId()); // 搜索文件的异步任务 new AsyncTask
() { private ProgressDialog dialog; // UI显示 protected void onPreExecute() { Log.i(TAG, "onPreExecute Thread id "+Thread.currentThread().getId()); dialog = ProgressDialog.show( Ex_SDAsyncTaskActivity.this, "", "正在扫描SD卡,请稍候...."); super.onPreExecute(); } // 后台执行 protected String doInBackground(Integer... params) { Log.i(TAG, "doInBackground Thread id "+Thread.currentThread().getId()); if (!android.os.Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED)) { } else { if (!editText.getText().toString().equals("")) { filelist.clear(); return Search_Files(Environment .getExternalStorageDirectory()); } } return null; } // 搜索完毕后,结果处理 protected void onPostExecute(String result) { Log.i(TAG, "onPostExecute Thread id "+Thread.currentThread().getId()); dialog.dismiss(); if (editText.getText().toString().equals("")) { Toast.makeText(Ex_SDAsyncTaskActivity.this, "请输入搜索的文件名", 1000).show(); } else { new AlertDialog.Builder(Ex_SDAsyncTaskActivity.this) .setTitle("SD卡搜索结果") .setMessage(result) .create().show(); } super.onPostExecute(result); } }.execute(0); Log.i(TAG, "onClick stop Thread id "+Thread.currentThread().getId()); }; }); } /** * 获取文件列表 * * @param filePath */ public String Search_Files(File filePath) { File[] files = filePath.listFiles(); String tempString=editText.getText().toString().toLowerCase(); if (files != null) { for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) { Search_Files(files[i]); } else { //匹配文件名 if(files[i].getName().toLowerCase().contains(tempString)){ filelist.add(files[i].getAbsolutePath()+"\n"); } } } } return filelist.toString(); }}

转载地址:http://pfkib.baihongyu.com/

你可能感兴趣的文章
Raid详解
查看>>
MySQL5.7重启MySQL服务时报错解决方案
查看>>
Mycat简单实现读写分离与分库分表
查看>>
Swift Socket 实例 两份资料不错
查看>>
pthread之工作模式
查看>>
路由器DSCP target
查看>>
java.util.ConcurrentModificationException
查看>>
jquery拿到HtmlObject类型
查看>>
ddpush 学习之路 3 StringUtil.java
查看>>
Linux【oh-my-zsh】ls命令无法tab键跳转文件文件夹
查看>>
杂谈:项目管理的是与非
查看>>
Java1.0/1.1中遗留的集合
查看>>
JDBC之第一个较为规范的JDBC程序
查看>>
Java实现多线程的两种方式
查看>>
Java多线程之使用执行器(Executors)(Thinking in Java)
查看>>
JDBC之使用懒汉式单例创建JDBC工具类
查看>>
JDBC之最基本的CRUD操作
查看>>
JDBC之SQL注入,PreparedStatement和Statement
查看>>
JDBC之日期问题
查看>>
JDBC之大段文本数据的保存与读取
查看>>