【发布时间】:2013-09-19 07:05:19
【问题描述】:
是否可以覆盖 File.delete() 函数?每当我从其他应用程序(不由我的应用程序使用)从 sdcard 中删除任何文件时,我都需要一个通知,例如该文件将被删除。我试过的示例代码 sn-p 是,
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();
}
}
和
File file = new File("/mnt/sdcard/tmp.txt");
ExtendFile f = new ExtendFile(file, tempPath);
我在FileObsever 的服务类中实现了上述两个语句。 现在我从其他应用程序中删除了 tmp.txt 文件,但我没有收到任何通知。 如何从其他应用程序获取通知?有没有可能?
提前致谢
【问题讨论】:
-
为什么需要
@Override呢?难道你不能把删除部分放在一个线程中,并且只有在用户确认删除时才运行这个线程(例如通过对话框确认)? -
@g00dy 感谢您的回复。首先,我只是这样实现(使用对话框确认)。但它仅适用于我自己的应用程序,不适用于其他应用程序。如何从其他应用程序获得对话框确认?
-
使用 fileObserver(请参阅我的回答),您现在只能通过包装 File 来影响自己的代码。
-
如前所述,fileObserver 是一个选项,但它不能解决您遇到的“问题”,因为它根本不可能。对于这种情况,您可能想要编写一个 Android Mod,但要实现您想要的东西,这需要做很多工作。
标签: android recycle-bin