转自:http://www.devdiv.com/forum.php?mod=viewthread&tid=44870&extra=page%3D3%26filter%3Ddigest%26digest%3D1%26digest%3D1

以下内容是我在修改Android1.6 Mediascanner bug的时候一点点总结,仅供参考。

Mediascanner扫描文件的方式共分两种:全盘文件扫描、单一文件扫描

全盘文件扫描:
底层mediascanner.cpp通过C语言的API将文件信息(包括文件被修改时间)通过JNI传递给Java层的MediaScanner.java。
再由MediaScanner.java将文件信息写入媒体数据库。

单一文件扫描:
Java层应用调用MediaScanner.java扫描单一文件的函数,该函数通过Java的API获取文件被修改时间,并写入媒体数据库。MP3下载结束后,DownloadService.java 调用MediaScanner.java扫描单一文件的函数,又因为Java的API获取文件被修改时间与C语言API获取的时间单位不一致,所以导致文件下载结束后写入数据库的文件被时间比实际值大出1000倍。


修改方案
在写入数据库前,先将文件被修改时间减小1000倍,然后在写入媒体数据库。

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android(安卓)Logcat 报错:Could not create the view: For input
  6. Android中使用Sonar进行代码质量分析
  7. Android(安卓)图片文件夹区别
  8. Android(安卓)SDK: adb 常用命令的使用(无线连接、端口转发、文件
  9. eclipse3.4创建android工程出现program.cpg文件找到不到

随机推荐

  1. Android开发之Android(安卓)Studio安装教
  2. Android(安卓)Material Design :LinearLay
  3. SAP BSP, Java Web Project,Android和微信
  4. Ubuntu搭建Eclipse+JDK+SDK的Android
  5. Android(安卓)用axis2 webService产生jav
  6. Gradle build 报错:Received status code
  7. Android(安卓)SDK文档之Drawable Mutatio
  8. android:onTouch()和onTouchEvent()的区
  9. 开始使用Android(安卓)Sutdio(三)创建一个H
  10. Android(手机)连接电脑本地服务器(flask)