下载歌曲分两部分,一部分是保存到数据库中(用于显示播放历史记录),一部分是下载到手机中。
当用户点击歌曲时首先会判断歌曲是否在数据库中,如果在数据中表示之前播放过此歌即下载过此歌那么就会播放本地歌曲;如果在数据库中没有该歌曲则在线播放歌曲同时把歌曲保存到数据库中同时下载到本地。考虑到手机容量限制,最多保存50首歌曲。所以在保存歌曲前会先去数据库和本地删除第51首歌曲(如果有51首的话)。
保存歌曲到数据库
这里用到了SQLiteOpenHelpr抽象类,实现了该抽象类用来作为数据库助手类。
public class MusicDBHelper extends SQLiteOpenHelper{
private Context mContext;
private static final String CREATE_MUSIC_TABLE = "CREATE TABLE if not exists music (_id INTEGER PRIMARY KEY AUTOINCREMENT, musciName VARCHAR, airtistName VARCHAR, albumName VARCHAR, No SMALLINT)";
public MusicDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version){
super(context,name,factory,version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_MUSIC_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
具体数据库的操作参照如下博客:
Android - SQLite 数据库
下载歌曲到本地
具体数据库的操作参照如下博客:
Android - DownloadManager