我如何利用Android';s";“清除缓存”;按钮

我如何利用Android';s";“清除缓存”;按钮,android,caching,file-io,Android,Caching,File Io,在Android的设置中,在点击应用程序时的“管理应用程序”活动中,数据被分解为应用程序、数据和缓存。还有一个按钮用于清除缓存。我的应用程序缓存音频文件,我希望用户能够使用此按钮清除缓存。我如何存储它们,以便它们与缓存集中在一起,用户可以清除它们?我尝试使用以下两种技术存储文件: newFile = File.createTempFile("mcb", ".mp3", context.getCacheDir()); newFile = new File(context.getCacheDir

在Android的设置中,在点击应用程序时的“管理应用程序”活动中,数据被分解为应用程序、数据和缓存。还有一个按钮用于清除缓存。我的应用程序缓存音频文件,我希望用户能够使用此按钮清除缓存。我如何存储它们,以便它们与缓存集中在一起,用户可以清除它们?我尝试使用以下两种技术存储文件:

newFile = File.createTempFile("mcb", ".mp3", context.getCacheDir());


newFile = new File(context.getCacheDir(), "mcb.mp3");
newFile.createNewFile();

在这两种情况下,这些文件都列为数据而不是缓存。

我认为您必须使用
下的
android:allowClearUserData
android:manageSpaceActivity
了解更多信息


或者,可以选择清除活动中的缓存。

我无法重现您的问题,可能是其他问题。

使用下面的应用程序,我能够在缓存目录中创建一个文件,然后使用“设置”下的“管理应用程序”功能将其清除。我不需要改变舱单上的任何东西,从我能说的来看

运行应用程序(并单击按钮创建文件)后:

管理应用程序报告缓存使用了4KB的空间。单击按钮将其清除后:

# ls /data/data/com.example.CreateCacheFile/cache
# cat /data/data/com.example.CreateCacheFile/cache/temp.txt
temp.txt: No such file or directory
# 

此时,Manage Applications报告缓存使用了0 KB的空间。

allowClearUserData似乎不起作用,但ManageSpace活动是个好主意。但是,我仍然希望能够使用清除缓存按钮。我也有同样的问题。令人烦恼的是,Eclipse中的Android DDMS不允许我浏览/data文件夹!所以我不知道我的文件保存在哪里,即使不同的权限允许使用“清除缓存”按钮。你是对的。似乎有效。我一定是做错了什么。谢谢。使用
getCacheDir()
时,是否建议使用
Environment.getExternalStorageState()
检查读/写能力?或者与此无关?
$ adb -d shell
# ls /data/data/com.example.CreateCacheFile/cache
temp.txt
# cat /data/data/com.example.CreateCacheFile/cache/temp.txt
Hello World
# 
# ls /data/data/com.example.CreateCacheFile/cache
# cat /data/data/com.example.CreateCacheFile/cache/temp.txt
temp.txt: No such file or directory
#