Java 在android中使用room数据库删除保存在文件夹中的照片

Java 在android中使用room数据库删除保存在文件夹中的照片,java,android,Java,Android,我正在使用手机中的默认照相机拍照。之后,将照片保存在使用文件类创建的文件夹中的特定路径中。在房间数据库中,我只存储图像的路径。现在,我添加了删除方法来删除特定的照片。我正在使用以下查询来删除 @Query("DELETE FROM record_table WHERE photo_path = photoPath") int deletePhotoPath(String photoPath); 以下方法用于删除照片(DataRepository.class) 在HolderData

我正在使用手机中的默认照相机拍照。之后,将照片保存在使用文件类创建的文件夹中的特定路径中。在房间数据库中,我只存储图像的路径。现在,我添加了删除方法来删除特定的照片。我正在使用以下查询来删除

 @Query("DELETE FROM record_table WHERE photo_path = photoPath")
     int deletePhotoPath(String photoPath);
以下方法用于删除照片(DataRepository.class)

在HolderData类中,我有以下方法从数据库中调用delete方法(HolderData.class)

但我的照片不会被删除。Logcats内部的delete方法运行良好。 不知道删除照片。我如何在我的设计中反映变化。 有人帮我解决这个问题吗..已经冲浪了很多次,但找不到解决方案

  • 在查询中引用参数时,不要忘记添加冒号:
  • 从文件室中删除链接之前,请以编程方式创建一个文件实例,并对该实例调用“delete”方法:
  •  public void  deletePhotoPath(String photoPath){
            new deletePhotoPathAsyncTask(RecordDao).execute(photoPath);
        }
    
        private class deletePhotoPathAsyncTask extends AsyncTask<String,Void,Void>{
            public deletePhotoPathAsyncTask(RecordDao dao) {
                RecordDao=dao;
            }
    
            @Override
            protected Void doInBackground(final String... strings) {
                int photoPathDeleted=RecordDao.deletePhotoPath(strings[0]);
                Log.d("deletePhotoPath"," Photo Path"+photoPathDeleted+strings[0]);
                return null;
            }
        }
    
     HolderData.deletePhotoPath(photopathArrayList.get(positionOfCurrentViewPhoto));
    
    public static void deletePhotoPath(String photoPath){
            Log.d(LOG_TAG, "deletPhotoPath:"+photoPath);
            dataRepository.deletePhotoPath(photoPath);
        }
    
    
    DELETE FROM record_table WHERE photo_path = :photoPath
    
    File file = new File("path to your file");
    file.delete();