1.[代码]安卓本地代码
package com.xxx.plugins;
import java.io.File;
import org.apache.cordova.DroidGap;
import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import com.casm.mobileinspections.MainActivity;
import android.util.Log;
public class ExitApp extends CordovaPlugin{
@Override
public boolean execute(String action, JSONArray data,
CallbackContext callbackContext){
//方法一:获取activity,调用其父类DroidGap的clearCache方法,清空缓存-start
//((DroidGap) this.cordova.getActivity()).clearCache();
//-方法一--end
//方法二:获取程序包下的cache文件夹路径,并递归删除其内容--start
File file = this.cordova.getActivity().getCacheDir();
delFile(0,file);
//--方法二---end
//this.webView.clearCache(true);
//删除缓存的数据库文件--具体效果我测试的就是对我表单的记录的密码会清空,更深层的没有研究--start
// this.cordova.getContext().deleteDatabase("webview.db");
// this.cordova.getContext().deleteDatabase("webviewCache.db");
//删除缓存的数据库文件--end
this.cordova.getActivity().finish();
System.exit(0);
return true;
}
/**
* 此函数负责根据传进的文件File对象,删除文件,
* @param file
*@param i只是为跟踪递归的深度而已,实际中没什么用处
*/
private void delFile(int i,File file){
if (file != null && file.exists() && file.isDirectory()) {
Log.d("删除文件--"+i,file.getAbsolutePath());
for (File item : file.listFiles()) {
Log.d("--删除文件",file.getAbsolutePath());
if(item.isDirectory()){delFile(i+1,item);}
else{
item.delete();}
}
file.delete();
}
}
}