自分のアプリケーションのキャッシュをクリアしようとしています と同じですアプリ - >アプリケーションの管理 - > "My App" - >キャッシュのクリア 、私はすでにこのコードを試しましたが動作しません。私は、アプリを閉じる前に、このような長いものをしない推薦するmain_acitivty.javaにアンドロイドで終了時にアプリケーションキャッシュをクリアする方法
void onCreate(){
}
..
@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();
}
あなたは 'trimCache' _before_' super.onDestroy'を呼び出すといいでしょうか? –
@MattClark返信ありがとう私は私のアプリケーションを終了した後にキャッシュをクリアしたい – MrMR
私はそれを取得し、あなたはすでに終了イベントのコードパスに入っています。 'super.onDestroy'はコードのすべてのオブジェクトをクリーンアップします。アプリを完全に終了する前にキャッシュをクリアする必要があります。私の前提では、あなたのコードが実行される前にアプリケーションが終了するため、キャッシュが実際にクリアされていないということです。また、他の人のコード1:1をコピーするときは、[少なくともそれを著者に帰属させる](http://stackoverflow.com/a/18200934/1790644)。 –