удаление файла изображения из файловой системы, а затем добавление нового файла изображения с тем же именем возвращает старое изображение при добавлении с помощью Uri в Android - PullRequest
1 голос
/ 29 апреля 2019

Я пытаюсь создать приложение, в котором мне необходимо добавить или удалить изображение одновременно из режима просмотра изображений и внешнего хранилища. В то же время, когда я пытаюсь добавить новое изображение в просмотр изображений с помощью Uri, старое изображение снова добавляется.

Вот мой код

if (resultCode == Activity.RESULT_OK && requestCode == IMAGE_PICK_CODE_GALLERY) {
            var selectedImage = data?.data
            try {
 val bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver,selectedImage)
                if(bitmap!=null) {
                    val imageURI: String = getImageUri(context!!, bitmap)
                }


private fun getImageUri(context: Context, inImage: Bitmap): String {
        var fOut: OutputStream?
        var path: String? = null
        var fileName: String? = abc
        var file: File? = null

                file = File(
                    Environment.getExternalStorageDirectory().toString() + File.separator + "myDirectory",
                    "$fileName"
                )

            if (file.exists())
            {
                file.getCanonicalFile().delete()
                if (file.exists())
                {
                    context?.deleteFile(file.getName())
                }
                file.delete()
            }
            file.createNewFile() //If file already exists will do nothing
            fOut = FileOutputStream(file)
            inImage.compress(Bitmap.CompressFormat.JPEG, 40, fOut)
            Glide.with(this).load(file).into(imageView!!)
            fOut.flush()
            fOut.close()
           // path = MediaStore.Images.Media.insertImage(context.contentResolver,file.absolutePath,file.getName(),null);
        } catch (ex: Exception) {
            ex.printStackTrace()
        }
  return file.toString()
    }

1 Ответ

1 голос
/ 29 апреля 2019

Glide кэширует ваши изображения, поэтому, вероятно, вы загружаете кэшированную версию старого изображения.

Как указано в Документы Glide , вы должны добавить подпись для обработки недействительности кэша:

Glide.with(yourFragment)
    .load(yourFileDataModel)
    .signature(new ObjectKey(yourVersionMetadata))
    .into(yourImageView);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...