动态更新音乐列表

在制作音乐播放器的过程中,我发现第一次导入音乐到如下所示文件夹中

 然后授予相关权限并运行模拟器,发现能加载第一次导入的音乐。

接着你没事做,进行第二次导入音乐,然后运行模拟器,发现只加载了第一次导入进来的音乐,不能加载第二次导入的音乐。是不是很奇怪?

奇怪很正常,当时我也懵逼了,所以上网查询了相关资料,发现原因是:

android的系统启动的时候,系统会自动扫描sdcard内的文件,并把文件保存在一个系统数据库中,程序每次访问的都是这个数据库,而不是sdcard。所以才会出现上述我所描述的问题,当然,不局限于音乐播放列表的更新,还有很多,只要是和sdcard内文件有关都是会遇到这个动态更新的问题。

我的解决方法:

在UI所在Activity中写如下代码,代码意思是向系统发送广播提醒系统该更新数据库了。

Uri  uri = Uri.parse("file://" + Environment.getExternalStorageDirectory());
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,uri);
sendBroadcast(intent);

注意:我写的uri是扫描sdcard里的所有文件,你可以根据项目的需要进行指定,别指错了就可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值