每次启动应用程序时数据库大小都会增加

时间:2013-10-26 07:08:48

标签: android database cursor

我有一个数据库。因为我无法检查设备中添加/删除歌曲,我每次启动应用程序时都会更新我的歌曲表。因此我得到duplicate of what ever already there in database。这就是为什么我的数据库每次发布时尺寸都在增加。我的问题是how to insert if any new songs are addedremoved 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);
            }

1 个答案:

答案 0 :(得分:1)

这类似于将应用程序数据库与手机上的歌曲同步。

要从DB中删除已删除的歌曲: 如果要维护歌曲的文件路径,请检查该位置是否存在该文件。如果文件不存在,则删除文件/歌曲。因此,请在DB中删除此条目。

在DB中添加新条目: 在添加新条目之前,请检查现有DB中新文件的文件路径。如果路径已存在,请勿再次插入。

通过执行此操作,您将删除数据库中不需要的条目,并且数据库仅维护设备上的现有文件。