我正在将几首歌曲保存在播放列表中(在我的应用程序数据库中)。当从播放列表中已经存在的SDCard中删除特定歌曲时,如何反映数据库中的更改?
调查使用FileObserver
您可以监视单个文件或目录。因此,您要做的就是确定其中包含歌曲的目录并监视每个目录。否则,您可以监视外部存储目录,然后每次更改任何内容时,请检查其是否在数据库中。
它实际上非常简单,类似这样的方法应该起作用:
import android.os.FileObserver;
public class SongDeletedFileObserver extends FileObserver {
public String absolutePath;
public MyFileObserver(String path) {
//not sure if you need ALL_EVENTS but it was the only one in the doc listed as a MASK
super(path, FileObserver.ALL_EVENTS);
absolutePath = path;
}
@Override
public void onEvent(int event, String path) {
if (path == null) {
return;
}
//a new file or subdirectory was created under the monitored directory
if ((FileObserver.DELETE & event)!=0) {
//handle deleted file
}
//data was written to a file
if ((FileObserver.MODIFY & event)!=0) {
//handle modified file (maybe id3 info changed?)
}
//the monitored file or directory was deleted, monitoring effectively stops
if ((FileObserver.DELETE_SELF & event)!=0) {
//handle when the whole directory being monitored is deleted
}
//a file or directory was opened
if ((FileObserver.MOVED_TO & event)!=0) {
//handle moved file
}
//a file or subdirectory was moved from the monitored directory
if ((FileObserver.MOVED_FROM & event)!=0) {
//?
}
//the monitored file or directory was moved; monitoring continues
if ((FileObserver.MOVE_SELF & event)!=0) {
//?
}
}
}
然后,当然,您需要始终运行此FileObserver才能使其生效,因此您需要将其放入服务中。从服务中您会做
SongDeletedFileObserver fileOb = new SongDeletedFileObserver(Environment.getExternalStorageDirectory());
您必须牢记一些棘手的事情:
我试图开发一个android应用程序,可以擦除其他应用程序的缓存数据,我试图浏览所有的博客,但没有一个对我有效,我可以通过以下代码清除我的应用程序的缓存 我想清除其他应用程序的缓存,可以任何机构请帮助我,如果我错了请纠正我,提前谢谢。
问题内容: 在android中,顶部的通知栏大多数时候都有阴影。但是,有时,例如当应用程序显示其标题栏时,或者在某些其他情况下(例如在Twitter应用程序或市场中),阴影效果消失了。我的猜测是,当下面的内容可以滚动时,阴影应该存在。 但是,在我的应用中,下面的内容无法滚动,我认为徽标顶部的阴影看起来很糟。 有谁知道如何禁用它? 问题答案: 该是你的影子,并将其设置为你的主题将消除它。您可以在Go
问题内容: 我想检查SD卡是否存在,并接收有关SD卡添加/删除的通知。 到目前为止,我已经使用过,并且已经制作了一个小应用程序来监听SD卡事件。 下面列出了代码: 此代码将获取有关添加/删除SD卡的通知(以及SD的初始状态-已插入/未插入)。但是,它更像是一种黑客手段,并非在所有情况下都有效。 我目前使用设备的属性,并检查它是否为-SD卡。我现在只需要这种类型的卡,就足够了。 插入SD卡后,将为子
有没有办法取消发布,然后从Android开发者控制台的应用程序列表中永久删除一个应用程序?
我在Tomcat中安装了一个.war应用程序,但一定有什么问题发生了,因为在Tomcat管理器中,唯一活动的按钮是“启动”,而取消部署按钮是灰色的。按下“开始”按钮会导致PC挂起。我试着从webapps中删除.war文件和已解压缩的文件,然后卸载并重新安装Tomcat,将.war文件添加回来,然后启动Tomcat,但manager仍然没有显示undeploy选项。任何关于我可以在哪里寻找碎片的指示
Google在这里有一个很好的页面展示了如何这样做:https://developer.android.com/distribute/tools/promote/linking.html 基本上,使用这段代码,它将打开Play Store到新apps页面: 我错过了什么?我肯定它非常简单,也许我需要进口的东西。 解决方案:导入Uri类是一个问题。我仍然不确定新的热键是什么来导入它。Apple-Sh