如何清除android中的缓存数据

时间:2015-07-24 09:41:44

标签: java android

我写了以下代码。但是我收到错误unfortunately cleardata has stopped。任何人请指导我。

package com.hrupin.cleaner;

import java.io.File;
import android.app.Application;
import android.util.Log;

public class MyApplication extends Application {
private static MyApplication instance;

@Override
public void onCreate() {
    super.onCreate();
    instance = this;
}

public static MyApplication getInstance(){
    return instance;
}

public void clearApplicationData() {
    File cache = getCacheDir();
    File appDir = new File(cache.getParent());
    if(appDir.exists()){
        String[] children = appDir.list();
        for(String s : children){
            if(!s.equals("lib")){
                deleteDir(new File(appDir, s));
                Log.i("TAG", "File /data/data/APP_PACKAGE/" + s +" DELETED");
            }
        }
    }
}

public static 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;
            }
        }
    }

    return dir.delete();
}

}

1 个答案:

答案 0 :(得分:1)

您应该在后台运行此类任务,而不是UI线程。

 Handler handler=new Handler();
 handler.post(new Runnable() {
        @Override
        public void run() {
            //put code here
        }
    });