如何在android中显示应用程序缓存

时间:2013-07-10 06:00:07

标签: android caching

您好我正在尝试开发一个可以列出所有应用程序及其缓存大小的Android应用程序,这是我的方法,我的代码现在运行正常。

for(int i=0; i<appCache.size(); i++)
{
try 
{
    final PackageManager pm = getPackageManager();
    Method getPackageSizeInfo;
    getPackageSizeInfo = pm.getClass().getMethod("getPackageSizeInfo", String.class, IPackageStatsObserver.class);
    getPackageSizeInfo.invoke(pm, appPackageName.get(i), new IPackageStatsObserver.Stub() {

        @Override
        public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)
        throws RemoteException 
        {
            final String title;
            ApplicationInfo applicationInfo;
            try {
                applicationInfo = pm.getApplicationInfo(pStats.packageName, 0);
                title = (String)((applicationInfo != null) ? packageManager.getApplicationLabel(applicationInfo) : "???");
                MessageDetails Detail;
                Detail = new MessageDetails();
                Detail.setIcon(getPackageManager().getApplicationIcon( pStats.packageName ));
                Detail.setName(title);
                Detail.setSub("Cache Size -> "+(pStats.cacheSize/1024));
                details.add(Detail);
            } 
            catch (final NameNotFoundException e) {}
        }
    });
} 
catch (SecurityException e) {
    e.printStackTrace();
} catch (NoSuchMethodException e) {
    e.printStackTrace();
}catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (InvocationTargetException e) {
    e.printStackTrace();
}       
}

但是这里安装在设备中的所有应用程序都会随其缓存一起列出,但我想将列表过滤到那些缓存大小大于0的应用程序,请帮我解决这个问题,谢谢。

0 个答案:

没有答案