2017-03-01 17 views
0

アプリを強制終了せずにアプリのキャッシュをクリアする必要があります。私は実行し続けるにはアプリが必要です。私はエスプレッソを使ってアプリケーションをテストしていますが、アプリケーションが起動する前にキャッシュをクリアする必要があります。それを行う可能な方法はありますか?強制的にアプリのキャッシュをクリアアプリを閉じる

public static void clearPreferences(Activity activity) { 
    try { 
     // clearing app data 
     String packageName = activity.getPackageName(); 
     Runtime runtime = Runtime.getRuntime(); 
     runtime.exec("pm clear "+packageName); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

これは私が持っているものです。アプリケーションを終了してテストケースを終了します

+0

に権限を追加 'File'のような通常のJava I/Oクラスを使用して、' getCacheDir() '内のすべてのファイルを削除します。 – CommonsWare

+0

このリンクを確認してください。 http://stackoverflow.com/questions/23908189/clear-cache-in-android-application-programmatically –

答えて

0

このリンクを参考にしてください。

http://stackoverflow.com/questions/23908189/clear-cache-in-android-application-programmatically 


public static void deleteCache(Context context) { 
    try { 
     File dir = context.getCacheDir(); 
     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(); 
    } else if(dir!= null && dir.isFile()) { 
     return dir.delete(); 
    } else { 
     return false; 
    } 
} 

menifest