我看到的計算器其他答案,但沒有人幫我解決我的問題。上的WebView清除高速緩存中,當應用程序被殺害
我有web視圖在活動的應用程序,我想,當應用程序被殺害清除緩存。
下面是我用刪除的cache
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;
}
我想,當應用程序被殺害清除緩存或者僅僅是應用程序將被殺害之前,我在哪裏打電話deleteCache(this)
的代碼?
我試着把它放在OnDestroy()
這個活動的方法中,但是當我按回活動的時候清除緩存的活動是而不是我的要求。
所以我添加
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
所以我的活動不會調用的onDestroy()在所有當我按下後退按鈕,也沒有我殺的應用。
我在哪裏需要清除的生命週期方法的緩存? 和 在我的應用程序被殺死之前,哪裏可以觸發一個事件給javascript函數?
試試這個。 http://stackoverflow.com/questions/2465432/android-webview-completely-clear-the-cache –
@AlvinVarghese這個問題更沒有使用高速緩存的所有應用程序的。所以他在webview加載時清除緩存。不是我的情況,我想在應用程序被銷燬時清除它。 – DroidDev
如果系統「決定」殺死正在後臺的應用進程,則不會得到任何回調。如果你作爲一個開發人員不能依賴它,那麼你可能應該重新思考這個問題的方法嗎?......你所知道的肯定是你的應用程序是由['Application'的'onCreate() '方法被稱爲](http://stackoverflow.com/questions/43101071/application-lifecycle-when-app-is-killed-in-the-background/43101601#43101601)。那麼爲什麼不從該方法內清除緩存,即不是應用程序被殺,而是應用程序啓動後? – Onik