Android: efface le cache par programme

Comment effacer le cache de chaque application sur mon téléphone Android par programme? Est-ce que la suppression du cache par programme est autorisée dans Android? Si permis, comment? J'ai déjà essayé de faire des recherches et je ne trouve pas la réponse dont j'ai besoin

  • Déclenchement d'un fichier audio lorsque l'appel est répondu
  • OnActivityResult () non appelé
  • Pourquoi devrais-je utiliser un fragment dans Android?
  • Impossible de trouver la méthode android () pour les arguments lors de la construction d'un projet Android à partir de gradle
  • Notification Google Push Messaging Push
  • Comment configurer Android Map sdk v2 pour utiliser différentes clés pour la production et le développement?
  • 3 Solutions collect form web for “Android: efface le cache par programme”

    J'ai trouvé celui-ci:

    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(); } } 

    Cela vous sera utile.

    C'est un scénario drôle. Dans la documentation Manifest.Permission

    Public static final Chaîne CLEAR_APP_CACHE

    Ajouté au niveau API 1 Permet à une application d'effacer les caches de toutes les applications installées sur le périphérique.

    Valeur constante: "android.permission.CLEAR_APP_CACHE"

    Vous pouvez donc obtenir l'autorisation d'effacer le cache de toutes les applications. Mais je ne pense pas qu'il existe une méthode dans le SDK pour utiliser cette autorisation. Vous pouvez donc simplement conserver la permission et ne rien faire avec elle. Étrange de google.

    EDIT: cette discussion Google pourrait être intéressante. Dianne Hackborn dit spécifiquement que l'autorisation ci-dessus ne devrait pas être présente dans le SDK, car l'API pour l'utiliser n'est pas là.

    Pour effacer les données d'application, essayez de cette façon. Je pense que cela vous aidera.

     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(); } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.