我对Android开发很新,我目前正在尝试制作媒体播放器。我的下一个目标是实现一个播放列表系统,可以添加和删除项目,并在触发onCompleteListener()时自动删除。我目前正在使用contentResolver从SD卡中提取歌曲
public void getSongList(){
ContentResolver musicResolver=getContentResolver();
Uri musicUri= MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor=musicResolver.query(musicUri,null,null,null,null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int titleColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.TITLE);
int idColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media._ID);
int artistColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.ARTIST);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
songList.add(new Song(thisId, thisTitle, thisArtist));
}
while (musicCursor.moveToNext());
}
}
此时我已将其设置为可以点击listView中的项目,它可以通过服务开始播放歌曲。我的问题是存储歌曲URI和位置数据的最佳方法是什么。我还希望应用程序能够在应用程序重新启动时将播放列表存储在最后位置,即使在onDestroy()之后也是如此。我不确定哪种数据集最适合用于存储该数据,以及如何检索它。任何帮助将不胜感激!
答案 0 :(得分:0)
您需要 将歌曲数据保存到设备 。
Android框架提供了多种持久性选项和策略:
使用案例
每个存储选项通常都有相关的用例,如下所示:
了解详情:Persisting Data To Device。
您可以使用其中一个选项,但出于您的目的, SQLite数据库或 ORM 是更好的选择。
您可以访问SQLite数据库的Local Databases with SQLiteOpenHelper。
对于ORM,您可以尝试greenDAO。