清除缓存应用程序:为什么不起作用?

我要被清除我的应用程序的高速缓存上preference点击。我这样做,但它不工作,有错误。我该如何解决?

I want to click on the preference is cleared the cache of my app. I did this, but it does not work and there are errors. How can I fix?

这是整个源。非常感谢!!!!!!

This is the whole source. Many Thanks!!!!!!

public class Impo extends PreferenceActivity{


Preference info;
Intent intent;
Preference cache;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.addPreferencesFromResource(R.xml.layout);


info= (Preference) this.findPreference("info");
info.setOnPreferenceClickListener( new OnPreferenceClickListener() {
    public boolean onPreferenceClick(Preference preference) {
        intent = new Intent(getBaseContext(), Info.class);
        startActivity(intent);
        return true;
    }});
cache = (Preference)this.findPreference("cache");
cache.setOnPreferenceClickListener(new OnPreferenceClickListener() {

}
}
public static void clearCache(final Context context)
{
final File cache=context.getCacheDir();
final File appDir=new File(cache.getParent());
if(appDir.exists())
  {
  // you might be able to change this whole code block to just "deleteDir(appDir)"
  final String[] children=appDir.list();
  for(final String childFilePath : children)
    if(!childFilePath.equals("lib"))
      {
      deleteDir(new File(appDir,childFilePath));
      Log.i("TAG","**************** File /data/data/APP_PACKAGE/"+childFilePath+" DELETED *******************");
      }
  }
}

public static boolean deleteDir(final File dir)
{
if(dir==null)
  return true;
if(dir.isDirectory())
  {
  final String[] children=dir.list();
  for(final String childFilePath : children)
    {
    final boolean success=deleteDir(new File(dir,childFilePath));
    if(!success)
      return false;
    }
  }
return dir.delete();
}
}

.......................................

.......................................



 1 条回答