安卓开发:清除缓存并重启,删除指定路径下的文件缓存


直接上代码,仔细看注释

java 复制代码
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
import java.io.BufferedReader;
import java.io.File;
--导入相关依赖,不同环境版本导入不同,根据实际情况import


public static String clearSTars(String input) throws JSONException {
        String path = appActivity.getApplication().getFilesDir().getPath() + "/zhixing";//这里填指定需要清理的内部文件的路径
        File file = new File(path);
        deleteFile(file);
        clearAppCache(AppActivity.getAppContext());
        restartApp(AppActivity.getAppContext());
        return "";
}

 private static void deleteFile(File file) {
 //删除指定路径文件
        if (file == null || !file.exists()) return;

        if (file.isDirectory()) {
            File[] files = file.listFiles();
            if (files != null && files.length > 0) {
                for (File f : files) {
                    deleteFile(f);
                }
            }
        }
        try {
            boolean deleted = file.delete();
            if (!deleted) {
            }
        } catch (Exception e) {
        }
    }

public static void clearAppCache(Context context) {
//清理app缓存
        try {
            File cacheDir = context.getCacheDir();
            deleteDir(cacheDir);

            // 清除 WebView 缓存
            context.deleteDatabase("webview.db");
            context.deleteDatabase("webviewCache.db");

            File appDir = context.getExternalCacheDir();
            if (appDir != null) {
                deleteDir(appDir);
            }

            Log.i("App", "缓存已清理");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


public static void restartApp(Context context) {
//重启app
        Intent intent = context.getPackageManager()
                .getLaunchIntentForPackage(context.getPackageName());
        if (intent != null) {
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }

        // 杀死当前进程
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);
    }

  public static Context getAppContext() {
        return appActivity.getApplicationContext();
    }
相关推荐
诸神黄昏EX3 分钟前
Android Qualcomm USB 专题系列【篇二:UsbGadget模式配置】
android
诸神黄昏EX10 分钟前
Android Qualcomm USB 专题系列【总篇:USB HAL架构】
android·linux·网络
后端小张38 分钟前
【Java 进阶】深入理解Redis:从基础应用到进阶实践全解析
java·开发语言·数据库·spring boot·redis·spring·缓存
原神启动140 分钟前
Ansible(三)—— 使用Ansible自动化部署LNMP环境
android·自动化·ansible
前端老白1 小时前
webview在微信小程序中,安卓加载失败,IOS正常加载
android·ios·微信小程序·webview
2501_937154931 小时前
适配中兴主流机型 纯净版刷机固件技术优势合集
android·源码·源代码管理·机顶盒
2501_915106321 小时前
用 HBuilder 上架 iOS 应用时如何管理Bundle ID、证书与描述文件
android·ios·小程序·https·uni-app·iphone·webview
TheNextByte11 小时前
如何通过OTG或不使用OTG将文件从Android传到U盘
android
2501_915909061 小时前
资源文件混淆在 iOS 应用安全中的实际价值
android·安全·ios·小程序·uni-app·iphone·webview
2501_915918411 小时前
iOS App 性能测试中常被忽略的运行期问题
android·ios·小程序·https·uni-app·iphone·webview