Android 如何在Marshmallow中以编程方式清除应用程序缓存

Android 如何在Marshmallow中以编程方式清除应用程序缓存,android,performance,android-studio,Android,Performance,Android Studio,我想在Android Marshmallow 6.0中以编程方式清除我的应用程序缓存。我尝试了下面的代码,但它在棉花糖中不起作用。我在mymanifests.xml中添加了CLEAR_APP_CACHE权限 public void trimCache(Context context) { try { File dir = context.getCacheDir(); if (dir != null && dir.

我想在Android Marshmallow 6.0中以编程方式清除我的应用程序缓存。我尝试了下面的代码,但它在棉花糖中不起作用。我在mymanifests.xml中添加了CLEAR_APP_CACHE权限

 public  void trimCache(Context context) {
        try {
            File dir = context.getCacheDir();
            if (dir != null && dir.isDirectory()) {
                deleteDir(dir);
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
    }

 public  boolean deleteDir(File dir) {
        if (dir != null && dir.isDirectory()) {
            String[] children = dir.list();
            for (int i = 0; i < children.length; i++) {
                boolean success = deleteDir(new File(dir, children[i]));
                if (!success) {
                    return false;
                }
            }
        }

        // The directory is now empty so delete it
        return dir.delete();
    }
公共缓存(上下文){
试一试{
File dir=context.getCacheDir();
if(dir!=null&&dir.isDirectory()){
deleteDir(dir);
}
}捕获(例外e){
//TODO:处理异常
}
}
公共布尔删除目录(文件目录){
if(dir!=null&&dir.isDirectory()){
String[]children=dir.list();
for(int i=0;i
在清单中添加以下权限:

<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />

它怎么不起作用?你的应用程序崩溃了吗?“请详细说明,以便人们能更好地帮助您。”HadiSatrio感谢您的回复。我在Android studio的监视器选项卡中看到过。它不能释放内存。而且它还会导致我的应用程序崩溃,错误是内存不足。我没有存储卡,手机里只有500mb的可用内存。我也面临着同样的问题。如果有人已经决定了,请帮助。谢谢我忘了添加我的问题,但我已经添加了权限。
public  void trimCache(Context context) {
        try {
            File dir = context.getCacheDir();
            if (dir != null && dir.isDirectory()) {
                deleteDir(dir);
            }
            File exDir = context.getExternalCacheDir();
            if (exDir != null && exDir.isDirectory()) {
                deleteDir(exDir);
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
    }