Android: Borrar la caché mediante programación

Cómo borrar el caché de cada aplicación en mi teléfono android programmmatically? ¿Se permite el borrado de caché programáticamente en android? Si está permitido, ¿cómo? Ya trato de investigar y no puedo encontrar la respuesta que necesito

He encontrado este:

import java.io.File; import android.app.Activity; import android.content.Context; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle *) { super.onCreate(*); setContentView(R.layout.main); } @Override protected void onStop(){ super.onStop(); } //Fires after the OnStop() state @Override protected void onDestroy() { super.onDestroy(); try { trimCache(this); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void trimCache(Context context) { try { File dir = context.getCacheDir(); if (dir != null && dir.isDirectory()) { deleteDir(dir); } } catch (Exception e) { // TODO: handle exception } } 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; } } } // The directory is now empty so delete it return dir.delete(); } } 

Puede ser útil para usted.

Este es un escenario divertido. En la documentación Manifest.Permission

Public static final String CLEAR_APP_CACHE

Añadido en el nivel 1 de la API Permite que una aplicación borre las cachés de todas las aplicaciones instaladas en el dispositivo.

Valor constante: "android.permission.CLEAR_APP_CACHE"

Así que puede obtener el permiso para borrar la memoria caché de toda la aplicación. Pero no creo que haya ningún método en el SDK para utilizar este permiso. Así que sólo puede tener el permiso y no hacer nada con él. Extraño de google.

EDIT: Esta discusión de Google puede ser de interés. Dianne Hackborn dice específicamente que el permiso anterior no debe estar presente en el SDK, ya que el API para usarlo no está allí.

Para borrar los datos de la aplicación, pruebe de esta manera. Creo que te ayudará.

 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(); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.