清除应用数据并重启工具类

Android 10 恢复出厂设置和清除应用数据接口 1 .恢复出厂方式的接口 a.通过广播方式调用: Intent intent = new Intent(Intent.ACTION_FACTORY_RESET); intent.setPackage("android"); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm"); ... 阅读详情
public class Utils {
	public static void clearAppUserData(final Context context) {
		cleanExternalCache(context);
		cleanInternalCache(context);
		cleanDatabases(context);
		cleanFiles(context);
		cleanSharedPreference(context);
	}

	/**
	 * * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) * * @param
	 * context
	 */
	public static void cleanExternalCache(Context context) {
		if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
			deleteFilesByDirectory(context.getExternalCacheDir());
		}
	}


	/** * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * @param context */
	public static void cleanInternalCache(Context context) {
		deleteFilesByDirectory(context.getCacheDir());
	}

	/** * 清除/data/data/com.xxx.xxx/files下的内容 * * @param context */
	public static void cleanFiles(Context context) {
		deleteFilesByDirectory(context.getFilesDir());
	}

	/** * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) * * @param context */
	public static void cleanDatabases(Context context) {
		deleteFilesByDirectory(new File("/data/data/" + context.getPackageName() + "/databases"));
	}

	public static void cleanSharedPreference(Context context) {
		deleteFilesByDirectory(new File("/data/data/" + context.getPackageName() + "/shared_prefs"));
	}

	/** * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * * @param directory */
	private static void deleteFilesByDirectory(File directory) {
		File[] files = directory.listFiles();

		if (files != null) {
			for (int i = 0; i < files.length; i++) {
				if (files[i].isFile()) {
					files[i].delete();
				} else if (files[i].isDirectory()) {
					deleteFilesByDirectory(files[i]);
				}
				files[i].delete();
			}
		}
	}

	/**
	 * 重启整个APP
	 * @param context
	 * @param Delayed 延迟多少毫秒
	 */
	public static void restartAPP(Context context, long Delayed) {
		/**开启一个新的服务,用来重启本APP*/
		Intent intent1 = new Intent(context, killSelfService.class);
		intent1.putExtra("PackageName", context.getPackageName());
		intent1.putExtra("Delayed", Delayed);
		context.startService(intent1);

		/**杀死整个进程**/
		android.os.Process.killProcess(android.os.Process.myPid());
	}
}

Manifest.xml:

<service
            android:name=".service.killSelfService"
            android:process=":restart" />
killSelfService:
public class killSelfService extends Service {

    /**
     * 关闭应用后多久重新启动
     */
    private static long stopDelayed = 2000;
    private Handler handler;
    private String PackageName;

    public killSelfService() {
        handler = new Handler();
    }

    @Override
    public int onStartCommand(final Intent intent, int flags, int startId) {
        stopDelayed = intent.getLongExtra("Delayed", 2000);
        PackageName = intent.getStringExtra("PackageName");
        Log.d("wujiang", "onStartCommand: PackageName = " + PackageName);
        handler.postDelayed(() -> {
            Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(PackageName);
            startActivity(LaunchIntent);
            killSelfService.this.stopSelf();
        }, stopDelayed);
        return super.onStartCommand(intent, flags, startId);
    }


    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

使用:

Utils.clearAppUserData(getActivity());

mHandler.postDelayed(new Runnable() {
    @Override
    public void run() {
         Utils.restartAPP(getContext(), 1000);
    }
}, 200);

                                                          The     End

ES数据同步:定时重启Logstash,并清除相关数据。 crontab 文件是一个用于定时执行任务的文件,其中包含了一系列的命令和任务,系统会按照预定的时间间隔来执行这些任务。-x [num]:设置 crontab 文件的加密级别,默认为 0,不加密。crontab 文件中的命令会在后台执行,不会在终端中显示输出结果,如果需要查看输出结果可以使用日志文件记录。使用 crontab -e 可以编辑当前用户的 crontab 文件,可以添加、删除和修改定时任务。-u user:指定要编辑的用户的 crontab 文件,默认为当前用户。 阅读详情

相关推荐

定期重启Logstash,并清除last_run_metadata_path数据。

使用find命令结合grep命令:find命令用于在指定目录及其子目录中查找文件,而grep可以在找到的文件中查找匹配内容。这条命令会在/path/to/directory目录下的所有文件中查找包含关键词"keyword"的文件。使用该参数后,grep命令将只显示包含匹配字符串的文件名,而不显示具体匹配内容。将只显示包含关键字”keyword”的文件名。:结束-exec命令,批量处理匹配到的文件。:对找到的每个文件执行后面的命令。:代表find命令找到的文件名。:仅选择类型为普通文件的项。

专注于计算机研发知识和资讯分享 519

android 设置中清除数据 重启应用

1.没有监听的广播 2.在初次登陆设置 本地的标志  3.在BaseActivity 中 判断 本地标志 是否被清除  4.清除就重启App   Intent i = getBaseContext().getPackageManager()           .getLaunchIntentForPackage(getBaseContext().getPackageName());  

qq_33650812的博客 1717

Labelme AI-Polygon闪退排查与修复指南

本文详细介绍了Labelme AI-Polygon功能闪退问题的排查与修复方法,包括环境配置检查、模型路径设置、依赖库版本控制等关键步骤。通过系统性的解决方案和实用技巧,帮助用户快速解决闪退问题,确保数据标注工作的高效进行。

weixin_29311017的博客 140

android 清理后自动重启,解决Android后台清理APP后,程序自动重启的问题

最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启。现象很奇怪,有的手机(HTC)后台清理后,程序必crash,而有的手机(小米)程序不会crash。查找问题时,发现HTC手机执行后台清理后,程序会自动重启,而小米手机则没有。猜想可能是小米手机内部做了处理,当执行后台清理后,对应的APP不会再重启了。不过问题在于,HTC手机后台清理,为什么会导致程序crash。De...

weixin_34653945的博客 1645

利用易特天下 ipbox&零层壹号 sdwan 组网盒子实现异地组网

一款支持zerotier的异地组网盒子

v808v808的博客 3350

微信开放标签wx-open-launch-app样式失效?手把手教你正确设置点击区域(附完整代码)

本文详细解析了微信开放标签`wx-open-launch-app`样式失效和点击无响应的常见问题,提供了完整的解决方案和代码示例。通过分析标签内部实现机制,指导开发者正确设置点击区域和样式,确保跨平台兼容性和用户体验优化。

joy55的博客 320

Android多进程重启app

对于一些需求,比如切换语言重启应用,如果项目中很多地方有通过Application.getResource().getString(int stringRes)在部分手机可能存在语言没有切换的问题,比较简单的能解决这个问题的方式是,杀死当前进程,重新启动app。具体实现:1、子进程服务/** * 跨进程重启,避免用Application获取的文案,切换语言后文案未更新问题 */ public ...

笨鸟的专栏 1258

从零搭建一个虚拟ECU:手把手用Autosar CP模块模拟汽车灯控系统(基于Vector工具链)

本文详细介绍了如何使用Vector工具链从零搭建一个基于Autosar CP架构的虚拟ECU系统,模拟汽车灯光控制功能。通过环境搭建、模块配置、通信栈设置到灯光控制逻辑实现的全流程指导,帮助开发者掌握Autosar CP模块术语的实际应用,并提供了系统集成与测试的实用方案。

weixin_42628688的博客 313

android 实现APP重启,华为亲测

华为adnroid 12你测试app重启

Jackie Yang 3049

代谢组数据分析(十五):基于python语言构建PLS-DA分类预测模型

本教程阐述典型代谢组学数据分析工作流程,用于二元分类结果的研究。流程主要步骤如下:首先从 Excel 表格导入代谢物与实验数据,接着基于汇总 QC 进行数据清洗。随后借助主成分分析可视化检查数据质量,再开展两类单变量统计。之后运用偏最小二乘判别分析(PLS - DA)实施多变量分析,此过程涵盖模型优化(对比 R2 与 Q2)、置换测试及明确模型预测指标、确定特征重要性、对模型预测数据进行可视化。最终将统计表格导出至 Excel 表格,完整呈现从数据导入到分析结果输出的全过程。

专注生信领域 2876

基于STM32设计的智能防盗单车锁_349

本设计基于STM32F103RCT6单片机,研制了一种适用于户外环境的智能防盗单车锁系统。系统集成了GPS定位模块、ADXL345加速度传感器、4G通信模块(Air780E)、OLED显示屏、继电器模拟锁控模块等硬件,通过姿态感知实现车辆异常移动检测,在锁车状态下自动触发蜂鸣器报警并通过短信与APP通知用户。

868

android 应用 kill ,restart ,重启,方法

1.  通过拿到当前的进程 id ,调用 shell 命令,杀死进程。                    int pid = android.os.Process.myPid();                  String command = "kill -9 "+ Process.myPid();                  try {

明风的博客 5370

手把手教你从入门到精通C# MES通信

本文是C#与MES通信通信的目录,使用C#与各种MES系统通信的方法我都会在专栏中讲到,比如WebService、Http、Ftp、共享文件夹、串口通信等,绝对是上位机软件工程师实现与MES系统通信的必备教程!

qq_34059233的博客 8751

Android利用代码清除App的数据和重启设备

/** * 利用代码清除App的数据 * 平常我们在清除App的数据时,多半在设置中找到对应的App * 然后选择其清除数据.下面给出代码实现. * * 注意事项: * 1 设备需要root * 2 注意在命令的末尾需要加上换行\n * 这就相当于我们平时在Dos中输入命令后再换行一样. * 否则命令不会执行. */ private void c

谷哥的小弟 6576

在Open3D中从网格中采样点云

在本文中,我们将学习如何使用Open3D从网格中采样点云。点云采样是点云处理的重要步骤之一,能够为后续的任务提供必要的输入。通过这些示例代码,我们可以很容易地使用Open3D库从网格模型中采样点云。值得注意的是,根据实际应用需求,我们可以调整采样点的数量和采样方法来满足不同的场景需求。除了使用Poisson Disk算法,Open3D还提供了其他的点云采样方法,如Uniform采样和Random采样。这个函数使用了Poisson Disk采样算法,可以在保持点云均匀性的同时,尽可能避免重叠点的生成。

FxRuby的博客 413

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android代码重启设备,Android利用代码清除App的数据和重启设备

/*** 利用代码清除App的数据* 平常我们在清除App的数据时,多半在设置中找到对应的App* 然后选择其清除数据.下面给出代码实现.** 注意事项:* 1 设备需要root* 2 该示例中删除的是系统级应用* 2 注意在命令的末尾需要加上换行\n* 这就相当于我们平时在Dos中输入命令后再换行一样.* 否则命令不会被执行.*/private void cleanData(String...

weixin_39528467的博客 525

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

app闪退后重启_Android 解决应用崩溃后重启的问题

在开发过程中,想必你也一定遇到过这样的问题,当我们的应用发生Crash时异常退出,然后又自动启动跳转到未知页面,此时应用在崩溃前保存的全局变量被重置,用户状态丢失,显示数据错乱。更让我们头疼的是,这种崩溃后重启的情况,并不是每次都会遇到,那么究竟是因为什么呢?经测试,在 Android 的 API 21 ( Android 5.0 ) 以下,Crash 会直接退出应用,但是在 API 21 ( A...

weixin_39956353的博客 3256

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

软重启、硬重启、重启、重置,这些概念你搞清楚了吗

转载自品略图书馆http://www.pinlue.com/article/2020/05/1003/3210434129831.html 如果你使用的是Windows电脑,甚至是手机,我相信你已经听说过所有这些术语。虽然它们听起来很相似,但是它们之间还是有区别的。作为一个用户,有必要把这些术语搞得一清二楚吗?坦率地说,这并不重要,因为在外观上,你只需要一个重新启动、关机和注销按钮即可然后按照它们的意思进行操作就行了。不过,知其然,还要知其所以然,把这些概念搞清楚也有利于更好的操作电脑,在本文中,..

yihuliunian的博客 9944

postgresql 清除数据并清除自增ID

单纯清除数据的方法 – 清除所有的记录(有外键关联的情况下) TRUNCATE TABLE questions CASCADE; – 清除所有的记录,并且索引号从0开始 TRUNCATE TABLE questions RESTART IDENTITY CASCADE; ...

WangJY的技术博客 6284

IDEA如何不清除缓存并且重启

file->清除缓存。

qq_55278081的博客 454

应用重启会导致数据库锁记录,如何预防死锁

今天有个开发人员,一天之内,产生了好几次记录被锁没有释放,大致情况是这样的:应用中有个定时:select xxx  for update,2分钟执行一次。执行过程中有commi;这个job是单线程的,照理说应该不会产生死锁。开始这个问题我也觉得挺奇怪,后来在同事的帮助下,又问了一下程立,终于明白了:在停止应用的时个,因为是kill的,所以数据库的行锁没有被释放,在数据库本身清理这个sess

fanzhenhua的专栏 2931

清除APP 数据的时候出现Crash的情况分析

在清除Chromium 浏览器数据的时候出现了异常情况 Crash 复制步骤: info>Storage&cache>CLEAR STORAGE>CLEAR ALL DATA>OK Crash 关键log如下: 5-25 01:15:31.954 1497 3925 I WindowManager: WIN DEATH: Window{7b7e795 u0 org.chromium.chrome/org.chromium.chrome.browser.site...

Leif_dong的专栏 3432

Android:彻底清除APP数据的几种方案总结

由自身控制,可以重新拉起APP。缺点1.没有系统级的清除那么彻底,比如重新拉起后不需要重新申请权限。当然数据库,SharePreferences相关的通通都会删掉的2.因为数据库文件被删除,所以重新拉起启动页时需要删除当前进程,此时会黑屏一下。代码:说明一点下面代码中的其实是获取了当前app的Application对象,也可以替换成context。//使用if (intent!= null) {//杀掉以前进程/***/if (null!= files) {

2301_79985012的博客 1256

停止redis集群后清除数据重启,Redisson无法自动重连问题解决方法

停止redis集群后清除数据重启,Redisson无法自动重连问题解决方法

runwuwushengxiyu的博客 615

计算机软重启,软重启、硬重启、重启、重置,这些概念你搞清楚了吗

如果你使用的是Windows电脑,甚至是手机,我相信你已经听说过所有这些术语。虽然它们听起来很相似,但是它们之间还是有区别的。作为一个用户,有必要把这些术语搞得一清二楚吗?坦率地说,这并不重要,因为在外观上,你只需要一个重新启动、关机和注销按钮即可然后按照它们的意思进行操作就行了。不过,知其然,还要知其所以然,把这些概念搞清楚也有利于更好的操作电脑,在本文中,我们将快速了解软重启、硬重启、重启和重...

weixin_39902875的博客 2747
上一篇: SharedPreferences里的变量莫名被删除的问题
下一篇: AI让我不在关注技术
wujiang_android
博客等级 码龄9年 11粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值