class Scaning{
private ArrayList<String> list;//保存扫描的文件
public List<String> queue=null;//用一个list,做法跟队列一样
public Scaning(String root){
list=new ArrayList<String>();
queue=(List<String>) Collections.synchronizedList(new LinkedList<String>());
queue.add(root);
}
public void scaning(){
new Thread(new Runnable() {
@Override
public void run() {
if(queue.size()>0){
new Thread(new ScanThread(queue.get(0))).start();
}
}
}).start();
}
class ScanThread implements Runnable{
private String root;
private File [] files;
ScanThread(String root){
this.root=root;
}
@Override
public void run() {
synchronized (queue) {
if(null!=root){
files=new File(root).listFiles();
if(null!=files){
for(File f:files){
if(f.isDirectory()){
queue.add(f.getAbsolutePath());
}else{
list.add(f.getAbsolutePath());
Log.e("ScanFile",f.getAbsolutePath());
}
}
}
queue.remove(root);
if(queue.size()>0){
new Thread(new ScanThread(queue.get(0))).start();
}else{
Log.e("ScanFile","scaning finish");
}
}
}
}
}
}
分享到:
相关推荐
通过学习这个源码,开发者可以了解如何在Android应用中实现图片扫描和展示功能,同时还能掌握文件访问、数据库查询、图片加载库的使用、UI设计以及性能优化等相关技术。这是一个实用的实践案例,对于提升Android开发...
在Android平台上,通过WiFi传输文件是一项实用的功能,可以让用户快速便捷地分享数据,例如照片、视频、应用程序等,而无需依赖蓝牙或者第三方应用。本文将深入解析标题为"Android 安卓手机(android)wifi传送文件...
在Android平台上,开发一款文件管理器是深入了解操作系统与应用程序交互的重要实践。Android 文件管理器源码可以帮助我们深入理解Android系统的文件操作、UI设计以及事件处理等核心概念。下面,我们将详细探讨这些...
通过以上方法,开发者可以有效地管理Android应用的内存,减少因内存溢出引发的应用崩溃,提高应用的稳定性和性能。在实际开发中,应结合具体项目需求,灵活运用这些技巧,确保应用在各种设备上都能流畅运行。
通过研究Android系统图库源码,开发者可以学习到如何高效地管理多媒体资源,实现流畅的用户体验,以及如何处理Android系统中的文件访问、数据存储和权限管理等问题。这对于想要开发自己的媒体应用或者提升Android...
1. **文件系统访问**:使用Android的`Environment.getExternalStorageDirectory()`方法获取SD卡路径,并通过`File`类操作文件和目录。 2. **多媒体库**:利用Android的`MediaPlayer`类处理音频播放,`ImageView`和`...
4. **恶意软件分析**:书中讨论了Android恶意软件的类型、行为模式和检测方法,包括静态分析(如APK文件解析)、动态分析(如沙箱环境监控)和网络流量分析。 5. **逆向工程**:Android应用的逆向工程是查找漏洞的...
Android 内存溢出和内存泄漏的问题 Android 内存溢出和内存泄漏是Android 应用程序中常见的问题,它们会导致程序崩溃、缓慢、甚至无法启动。了解内存溢出和内存泄漏的概念、原因和解决方法是 Android 开发者必须...
这通常通过调用`MediaScannerConnection.scanFile`完成,传入文件路径和MIME类型,系统会扫描新文件并更新媒体库。 4. **图片选择**: 为了实现相册功能,我们需要使用`Intent`来让用户从已存在的图片中选择。可以...
在Android或iOS应用开发中,实现“扫描手机中的图片,仿微信显示本地图片效果”的功能,通常涉及到以下几个关键知识点: 1. **文件系统访问**:首先,你需要了解移动设备的文件系统,如何获取到存储在设备上的图片...
BluetoothKit是一款功能强大的Android蓝牙通信框架,支持经典蓝牙和低功耗蓝牙设备混合扫描,提供了一系列简单易用的接口用于低功耗蓝牙设备的连接,数据读写,通知等。 特点 一、支持经典蓝牙和BLE蓝牙...
10. **测试与调试**:最后,学习如何编写单元测试和集成测试,使用Android Studio的调试工具定位和修复问题,确保应用的稳定性和性能。 总之,这个项目涵盖了Android开发中的多个重要方面,对提升Android开发者的...
在Android平台上,处理非标准图像格式,如TIFF(Tagged Image File Format),可能会遇到一些挑战,因为原生Android SDK并不直接支持TIFF文件的解析。然而,通过使用C或C++编写的本地库(SO库),我们可以绕过这个...
Android提供了MediaScannerConnection类,它可以扫描新添加或更新的媒体文件,并将它们加入到系统的媒体库。开发者需要调用其相关方法,配合ContentResolver查询音乐文件的信息。 此外,自定义界面是提升用户体验的...
在安卓开发中,为了实现类似微信的图片浏览功能,我们需要深入理解Android的文件系统、多媒体数据处理以及UI设计。这个项目“安卓Andriod源码——扫描手机中的图片,仿微信显示本地图片效果.zip”提供了这样的示例...
使用Glide的`log()`方法可以打印加载过程的详细日志,帮助开发者定位问题。另外,Glide内置了内存泄漏检测工具,可以在应用关闭时检查是否有未释放的资源。 通过以上技术,开发者可以构建出高性能、易用的图库应用...
通过深入学习和分析这个图库源代码,开发者可以了解到Android系统如何高效地管理和展示多媒体文件,这对于开发自己的媒体应用或者优化已有应用的媒体处理能力具有极大的参考价值。同时,对于理解Android的组件通信、...
在《Android面试宝典5.0》中,内容广泛覆盖了Android开发领域中经常会遇到的面试题目,并且对这些题目进行了深入的分析和解答。书中的内容可以分为几个主要部分: 一、Android基础和高级面试 这部分内容包括对...