0

データベースがあります。デバイス で曲の追加/削除を確認できないため、アプリケーションを起動するたびに曲のテーブルを更新してい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);
            }
4

1 に答える 1

1

これは、アプリケーション DB を電話の曲と同期するようなものです。

DB から削除された曲を削除するには: 曲のファイル パスを維持している場合は、ファイルがその場所に存在するかどうかを確認します。ファイルが存在しない場合、ファイル/曲は削除されています。したがって、DB でこのエントリを削除します。

DB に新しいエントリを追加するには: 新しいエントリを追加する前に、既存の DB で新しいファイルのファイル パスを確認します。パスが既に存在する場合は、再度挿入しないでください。

これにより、DB 内の不要なエントリが削除され、DB はデバイス上の既存のファイルのみを維持します。

于 2013-10-26T07:37:21.200 に答える