在android中重写文件删除

在android中重写文件删除,android,recycle-bin,Android,Recycle Bin,是否可以重写File.delete()函数?每当我从其他应用程序(我的应用程序不使用)中删除SD卡中的任何文件时,我需要一个通知,就像此文件将被删除一样。我尝试过的一个示例代码片段是 public class ExtendFile extends File { public ExtendFile(File dir, String name) { super(dir, name); // TODO Auto-generated construc

是否可以重写File.delete()函数?每当我从其他应用程序(我的应用程序不使用)中删除SD卡中的任何文件时,我需要一个通知,就像此文件将被删除一样。我尝试过的一个示例代码片段是

public class ExtendFile extends File
{
    public ExtendFile(File dir, String name) 
    {
         super(dir, name);
         // TODO Auto-generated constructor stub
    }

    @Override
    public boolean delete() 
    {    
        System.out.println("to be deleted");
        return super.delete();
     }
}  

我在中的一个服务类中实现了上述两个语句。 现在我从其他应用程序中删除了tmp.txt文件,但没有收到任何通知。 如何从其他应用程序获取通知?有没有可能


提前感谢

不,这是不可能的。这不仅会导致其他应用程序出现问题,还会导致Android操作系统出现问题

使用FileObserver,您只能看到文件发生了什么。你不能影响它。
总结:如果您只想知道“/mnt/sdcard/tmp.txt”发生了什么,那么请使用FileObserver,但您无法阻止删除。

为什么需要
@覆盖它?您不能将删除部分放入一个线程并仅在用户确认删除(例如通过对话框确认)时运行此线程吗?@g00dy谢谢您的回复。首先,我只是这样实现(使用对话框确认)。但它只适用于我自己的应用程序,不适用于其他应用程序。我如何从其他应用程序获得对话框确认?使用fileObserver(参见我的答案),您现在只通过包装文件来影响您自己的代码。fileObserver是一个选项,如上所述,但它无法解决您的“问题”,因为这根本不可能。在这种情况下,您可能希望编写一个Android Mod,但这对于您想要的东西来说是一个很大的工作。感谢您的回复。我正在尝试这样的应用程序。我尝试使用Fileobserver和Content observer获取通知,但这些仅在文件删除后才提供通知。这就是我试图重写File.delete()函数的原因。当用户要从SD卡删除任何文件时,我如何获得警报/通知?正如您所说,我们可以存储被删除文件的名称和路径。但是如何在android中获得相应文件的物理地址呢?嗯,我查看了模糊代码,它们使用的是.trash目录。所以不要理会我之前的评论。
File file = new File("/mnt/sdcard/tmp.txt");
ExtendFile f = new ExtendFile(file, tempPath);