我有一个数据库。因为我无法检查设备中添加/删除歌曲,我每次启动应用程序时都会更新我的歌曲表。因此我得到duplicate of what ever already there in database
。这就是为什么我的数据库每次发布时尺寸都在增加。我的问题是how to insert if any new songs are added
和removed the song from database if any old song deleted
。
Cursor cursorSong = this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,selection, null, null);
while (cursor.moveToNext()) {
String sdata = cursor.getString(0);
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_PATH, sdata);
mDB.insert(DataHelper.SONG_TABLE, null,initialValues);
}
答案 0 :(得分:1)
这类似于将应用程序数据库与手机上的歌曲同步。
要从DB中删除已删除的歌曲: 如果要维护歌曲的文件路径,请检查该位置是否存在该文件。如果文件不存在,则删除文件/歌曲。因此,请在DB中删除此条目。
在DB中添加新条目: 在添加新条目之前,请检查现有DB中新文件的文件路径。如果路径已存在,请勿再次插入。
通过执行此操作,您将删除数据库中不需要的条目,并且数据库仅维护设备上的现有文件。