Cómo borrar caché de Android

Tengo que encontrar una forma de borrar los datos que mi aplicación almacena en caché. Básicamente, estoy usando la implementación de la lista perezosa de Fedor ( carga de imágenes en ListView ) y quiero borrar la caché automáticamente cuando tengo por ejemplo 100 imágenes cargadas ¿Alguna idea de cómo hacer eso?

EDIT: Código:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); list=(ListView)findViewById(R.id.list); adapter=new LazyAdapter(this, mStrings); list.setAdapter(adapter); deleteCache(this); adapter.notifyDataSetChanged(); } public static void deleteCache(Context context) { try { File dir = context.getCacheDir(); if (dir != null && dir.isDirectory()) { deleteDir(dir); } } catch (Exception e) {} } 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(); } 

esto eliminará la caché

 public static void deleteCache(Context context) { try { File dir = context.getCacheDir(); if (dir != null && dir.isDirectory()) { deleteDir(dir); } } catch (Exception e) {} } 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(); } 

Espero que esto le ayude a obtener más

 public static void trimCache(Context context) { File dir = context.getCacheDir(); if(dir!= null && dir.isDirectory()){ File[] children = dir.listFiles(); if (children == null) { // Either dir does not exist or is not a directory } else { File temp; for (int i = 0; i < children.length; i++) { temp = children[i]; temp.delete(); } } } } 

puede llamar al servicio del sistema clearApplicationUserData () (funcionando sólo para> = versión de KitKat)

así que usted puede hacer una comprobación para la versión y después todo irá bien 🙂 aquí está el código:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { ((ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE)) .clearApplicationUserData(); } 

Si utiliza Apache Commons IO, puede realizar esto con una sola línea (excluyendo try-catch):

 try { FileUtils.deleteDirectory(context.getCacheDir()); } catch (IOException e) { // Do some error handling } 

Deseche el adaptador antiguo y adjunte el listview a una nueva instancia del adaptador (sin embargo, la vista de lista perderá la posición de desplazamiento). Ejemplo:

  @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); m_adapter = new MyAdapter(this); final ListView listView = (ListView) getView() .findViewById(R.id.my_list); listView.setAdapter(m_adapter); } } 
  • Aplicación de Android foto de uso para la lista de amigos
  • Obtener nombres de archivo desde un directorio en Android
  • Android Cómo saber qué casilla de verificación está seleccionada
  • Detectar si el contenido de EditText fue modificado por el usuario o por programa?
  • ListFragment no muestra cambios en el tiempo actual
  • cómo eliminar datos particulares de ArrayList <Integer> en android
  • ¿Cómo poner <Spanned> en list.setAdapter?
  • Vista de lista de Android con el problema de la casilla de verificación
  • Diálogo de lista personalizada de Android
  • ExpandableListView no reacciona y recibe ningún clic
  • Android: Cómo deshabilitar los elementos de la lista en la creación de la lista
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.