¿Cómo puedo guardar mi mapa de bits correctamente por segunda vez?

Quiero guardar mi mapa de bits en el directorio de caché. Yo uso este código:

try {
        File file_d = new File(dir+"screenshot.jpg");
        @SuppressWarnings("unused")
        boolean deleted = file_d.delete();
    } catch (Exception e) {
        // TODO: handle exception
    }

    imagePath = new File(dir+"screenshot.jpg");
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(imagePath);
        bitmap.compress(CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        Log.e("GREC", e.getMessage(), e);
    } catch (IOException e) {
        Log.e("GREC", e.getMessage(), e);
    }
}

Está funcionando bien. Pero si quiero guardar diferentes imágenes en el mismo camino, algo sale mal. Quiero decir que se guarda en la misma ruta, pero veo una imagen antigua, pero cuando hago clic en la imagen puedo ver la imagen correcta que guardé por segunda vez.

Tal vez proviene del caché, pero no quiero ver la imagen anterior porque cuando quiero compartir esa imagen con la imagen anterior de WhatsApp, si envío la imagen, parece correcta.

Quiero compartir la imagen guardada en WhatsApp como este código:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(imagePath));
shareIntent.setType("image/jpeg");
startActivityForResult(Intent.createChooser(shareIntent, getResources().getText(R.string.title_share)),whtsapp_result);

¿Cómo puedo arreglarlo?

gracias por adelantado.