首先,扫描只能是自己定时半小时或者10分钟主动扫描一次sd卡,没有事件能去监控sd卡的文件变化。
所以要么是加个选项,要么就后台定时扫描,只能这样。这样每次扫描完毕,都将列表记录下来并更新listview,
如果当前列表和扫描出来的列表一致就不变化,否则就添加多的那几条。

解决方案 »

  1.   

    我以前做个这个,我也是另外启动一个线程定时扫描,不过这样挺耗cpu资源的,楼主要好好考虑下
      

  2.   

    看下MediaScannerReceiver这个地方在android系统默认的情况下,一般是在ACTION_BOOT_COMPLETED扫internal storage
    在mount上磁盘后再扫下mount上的那个磁盘。
    如果要扫描单个文件。我记得linux上可以有一个 inotify, 可以监控文件系统改变,也许可以拿来尝试下<android_util_FileObserver.cpp也是使用这个方法>。这个因为是阻塞的过程,利用起来也不会耗费任何资源。