Ich habe die Anforderung, neue Image-Dateien des Typs .jpg auf dem Gerät erstellt zu verfolgen. Ich habe dies mit ContentObserver
auf MediaStore
unter Verwendung der Klasse MediaStoreObserver
und Registrierung in einem meiner Service getan.ContentObserver onChange() -Methode wird oft aufgerufen
Ich habe festgestellt, dass onChange()
Methode oft für eine einzelne Dateierstellung aufgerufen wird. Ich verstehe, dass die erstellte Mediendatei in vielen Tabellen von MediaStore
aktualisiert wird, daher wird onChange()
oft aufgerufen.
Meine Frage: Wie zu MediaStore
für ONLY Bilddatei erstellen/bearbeiten Vorgang registrieren?
-Danke im Voraus, Manju
private class MediaStoreObserver extends ContentObserver {
public MediaStoreObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
//check image file changes in MediaStore
readFromMediaStore(_context,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
}
//register for external media changes for image files
if(mediaStoreObserver!=null){
_context.getContentResolver().registerContentObserver(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
false,mediaStoreObserver);
Wo haben Sie diesen Beobachter abmelden? Wenn Sie nicht überprüft haben, ob Ihr Code diesen Beobachter mehrere Male registriert. –
Dies ist in einem Dienst onCreate() registriert, und das gleiche wird in onDestroy() meines Dienstes de-registriert. – Manju