需要:我只是想获取安装在手机中的每个应用程序的占用缓存大小。
我的方法:
PackageManager packageManager = getPackageManager();
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages)
{
try
{
Context mContext = createPackageContext(packageInfo.packageName, CONTEXT_IGNORE_SECURITY);
File cacheDirectory = mContext.getCacheDir();
if(cacheDirectory==null)
{
cacheArrayList.add("0");
}
else
{
cacheArrayList.add(String.valueOf(cacheDirectory.length()/1024));
}
}
catch (NameNotFoundException e)
{
e.printStackTrace();
}
}
结果:如果目录为空,则返回 0(作为条件)。但是如果目录存在,它总是返回 4 Kb。我按照以下过程检查了我的应用程序的缓存:
设置:-> 应用程序:-> 应用程序名称
但我在那里找到了它的0B。
为什么它会发生有人可以解释?以及如何获得缓存的确切大小?