Как заставить приложение “Галерея” Android обновиться?

395
19 апреля 2017, 11:41

Всем, Привет! Сейчас работаю над одним приложением под Android для манипуляций с файлами. Столкнулся с одной непоняткой... Допустим у вас есть где-то на диске какой нибудь файл фотографии. Он у вас будет отображаться в приложении галерея в виде предпросмотра. И вот вы захотели его удалить с помощью свой программы использовав что то типа этого:

existingFile.delete();

И вот логично было бы предположить что после такой операции он должен оттуда исчезнуть. В моём случае он из галереи не исчезает, но при нажатии открыть выскакивает ошибка. (Т.е. файла фактически физические уже нет а в галереи он еще светится). Проблема исчезает при перезагрузке устройства. Но может есть ещё другое решение? Может нужно использовать какой нибудь широковещательный интент?

Answer 1

Все правильно, Gallery это БД, которую надо обновлять после манипуляций с изображениями. Делается это так:

existingFile.delete();
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(existingFile)));

Этот бродкаст ловится приложением галереи и он сам обновит информацию о файле

READ ALSO
Java имплементация Интерфейса

Java имплементация Интерфейса

При имплементации одного и того же интерфейса во многие классы приложения, этот интерфейс пересоздается каждую имплементацию, то есть все...

255
Java, Андроид, setter/getter

Java, Андроид, setter/getter

Добрый день, понемногу начинаю изучать Java (с андроидом), естественно нужен практикум, так вот, решил написать простенькую программу, в которой...

193
CuncurrentModificationException

CuncurrentModificationException

Добрый день, при работе с javanio возникает CuncurrentModificationException, вроде стараюсь использовать iterator, и удалять элементы, но всеравно, при одновременном...

226
Зачем нужен finally?

Зачем нужен finally?

Допустим есть такой код

307