Vlc 通过扫描手机内存目录来获取音乐文件,扫描的时候进行剪枝加快速度,具体方法在 MediaLibrary.java启动一个线程扫描GetMediaItemsRunnable。
Question:怎样能不需要遍历目录来获取音乐清单?
运行Vlc进入音乐列表页面,显示当前存在的音乐清单,按Home键反回主页面,进入sd文件管理,删除一首歌曲,返回vlc发现,音乐列表并没有更新,被删除歌曲还存在。
个人想法:为了更好的用户体验,当歌曲被删除的时候,音乐列表页面应当及时更新。运行qq音乐,删除一首歌曲,返回音乐列表页面,发现对被删除歌曲做了相应的标记。
Question:怎样在歌曲被删除时能及时通知到用户?
Android四大组件中的ContentProvider正好能解决上述两个问题
ContentProvider的介绍请参考:
http://www.cnblogs.com/devinzhang/archive/2012/01/20/2327863.html:
对于怎样能及时获取到歌曲被删除的通知ContentObserver完美解决,ContentObserver:
http://blog.csdn.net/qinjuning/article/details/7047607
在使用ContentObserver时要注意, 如果使用new ContentObserver(Handler handler)创建一个contentObserver,则onChange方法会在主线程里执行,如果使用newContentObserver()创建一个contentObserver, 则onChange方法会在子线程里调用, ContentProvider机制分析:
http://blog.csdn.net/luoshengyang/article/details/6985171