Это вызывается только когда я обновляю или удаляю значения в MediaStore , но по какой-то причине, когда я вызываю resolver.insert(sArtworkUri, valuesAlbum);
только ContentObserver Метод OnChange () не вызывается.
Log.d("MediaStoreObserver", "Change detected!");
Активность с зарегистрированным наблюдателем
Handler handler;
handler = new Handler();
observer = new MediaStoreObserver(handler);
this.getContentResolver().
registerContentObserver(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
true,
observer);
Код, изменяющий содержимое в MediaStore
//Update song info.
String where = MediaStore.Audio.Media._ID + "=?";
String[] whereVal = {Long.toString(songID)};
resolver.update(musicUri, values, where, whereVal);
//Update albumArt.
resolver.delete(albumArtUri, null,null);
resolver.insert(sArtworkUri, valuesAlbum);
Класс наблюдателя
public class MediaStoreObserver extends ContentObserver {
public MediaStoreObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
}
@Override
public void onChange(boolean selfChange, Uri uri) {
super.onChange(selfChange, uri);
Log.d("MediaStoreObserver", "Change detected!");
}
}