如何查看是否添加了新歌:Android API 仅21首
How to check if new songs have been added: Android API 21 only
参考:
在 PlayMusic 应用程序中,一旦添加歌曲,库就会自动更新,即使应用程序处于 运行.
如何为构建新的音乐播放器应用实施同样的操作?
我正在使用 MediaStore.Audio.Media 获取所有歌曲的初始列表。
您正在访问一个 Content Provider,并且可以使用它 API 来注册更改时的通知。
使用 activity 中的 ContentResolver.registerContentObserver()
方法,并为提供商提供基本内容 URI,并为 notifyForDescendents
参数传递 true
,您的回调将被命中每次都有变化。
getContentResolver().registerContentObserver(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, true, observer);
专业提示:分别在 onResume() 和 onPause() 中注册和取消注册,否则如果您的应用程序不在前台时发生任何更改,您将遇到崩溃。
- 您可以使用定时器设置的固定时间间隔进行检查,例如。每 2 分钟更新一次媒体播放器的文件。
- 您还可以在 onResume、onPause 的生命周期回调中使用单独的线程来管理以检查是否有任何新添加的歌曲。
我推荐第二种方法。
您还可以在 android Music player before android ICS 中查看默认音乐播放器的来源
希望对您有所帮助:
参考: 在 PlayMusic 应用程序中,一旦添加歌曲,库就会自动更新,即使应用程序处于 运行.
如何为构建新的音乐播放器应用实施同样的操作?
我正在使用 MediaStore.Audio.Media 获取所有歌曲的初始列表。
您正在访问一个 Content Provider,并且可以使用它 API 来注册更改时的通知。
使用 activity 中的 ContentResolver.registerContentObserver()
方法,并为提供商提供基本内容 URI,并为 notifyForDescendents
参数传递 true
,您的回调将被命中每次都有变化。
getContentResolver().registerContentObserver(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, true, observer);
专业提示:分别在 onResume() 和 onPause() 中注册和取消注册,否则如果您的应用程序不在前台时发生任何更改,您将遇到崩溃。
- 您可以使用定时器设置的固定时间间隔进行检查,例如。每 2 分钟更新一次媒体播放器的文件。
- 您还可以在 onResume、onPause 的生命周期回调中使用单独的线程来管理以检查是否有任何新添加的歌曲。
我推荐第二种方法。
您还可以在 android Music player before android ICS 中查看默认音乐播放器的来源 希望对您有所帮助: