我看到的计算器其他答案,但没有人帮我解决我的问题。上的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