以编程方式清除应用程序的数据

2023-12-21

我想以编程方式清除应用程序的数据。

应用程序的数据可能包含数据库、共享首选项、内部-外部文件或应用程序内创建的任何其他文件等任何内容。

我知道我们可以通过以下方式清除移动设备中的数据:

设置->应用程序->管理应用程序->我的应用程序->清除 数据

但是我需要通过Android程序来完成上述事情吗?


API 19 (KitKat) 中引入了一个新 API:ActivityManager.clearApplicationUserData() http://developer.android.com/reference/android/app/ActivityManager.html#clearApplicationUserData().

我强烈建议在新应用程序中使用它:

import android.os.Build.*;
if (VERSION_CODES.KITKAT <= VERSION.SDK_INT) {
    ((ActivityManager)context.getSystemService(ACTIVITY_SERVICE))
            .clearApplicationUserData(); // note: it has a return value!
} else {
    // use old hacky way, which can be removed
    // once minSdkVersion goes above 19 in a few years.
}

如果您不想要这种老套的方式,您也可以隐藏用户界面上的按钮,这样该功能在旧手机上就无法使用。

任何使用此方法的人都必须了解此方法android:manageSpaceActivity http://developer.android.com/reference/android/content/pm/ApplicationInfo.html#manageSpaceActivityName.


每当我使用它时,我都是从manageSpaceActivity其中有android:process=":manager"。在那里,我手动杀死任何other我的应用程序的流程。这允许我让 UI 保持运行并让用户决定下一步去哪里。

private static void killProcessesAround(Activity activity) throws NameNotFoundException {
    ActivityManager am = (ActivityManager)activity.getSystemService(Context.ACTIVITY_SERVICE);
    String myProcessPrefix = activity.getApplicationInfo().processName;
    String myProcessName = activity.getPackageManager().getActivityInfo(activity.getComponentName(), 0).processName;
    for (ActivityManager.RunningAppProcessInfo proc : am.getRunningAppProcesses()) {
        if (proc.processName.startsWith(myProcessPrefix) && !proc.processName.equals(myProcessName)) {
            android.os.Process.killProcess(proc.pid);
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式清除应用程序的数据 的相关文章

  • 如何为android数据绑定点击监听器编写proguard规则?

    我在用databinding在我的应用程序中 它运行良好 但是当我启用minifyEnabled true and shrinkResources true比它告诉我一些错误 Execution failed for task app tr
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • ndk-build error.opencv2/core/core.hpp:没有这样的文件或目录

    我在 Android 中使用 OpenCV Nonfree 模块时遇到问题 我读了这个教程https sites google com site wghsite technical notes sift surf opencv androi
  • 升级到 Proguard 4.8 后无法导出应用程序

    我刚刚将我的 Android SDK ADT 和 Proguard 升级到最新最好的版本 我的项目在调试模式下编译并运行良好 但是当我尝试导出它的签名版本 APK 时 我收到来自导出向导的错误Eclipse 控制台上没有任何错误日志消息 如
  • 与通用地图相比,MapView 的分辨率较差

    我刚刚收到 HTC Desire 进行测试 我注意到 残留在小于整个屏幕的框架中的地图视图不如通用地图应用程序那么清晰 有什么办法解决这个问题吗 您应该使用 API 级别 4 或更高级别编译应用程序 然后在 AndroidManifest
  • 如何在 Android 中创建始终位于顶部的全屏覆盖 Activity

    我希望能够创建一个始终位于 Android 显示前面的 Activity 它不应该接收任何输入 只需将其传递到其下面的任何应用程序即可 像平视显示器之类的东西 我能够研究我需要将底层窗口类型设置为 TYPE SYSTEM ALERT 但看起
  • 新安装的Eclipse和Android SDK。无法让模拟器工作。挂在时钟屏幕上

    我对开发是全新的 我已经安装了 Eclipse 和 Andoid SDK 但是 我无法让模拟器工作 我已经尝试过示例记事本代码和 Hello Android 教程代码 每次我尝试运行任一应用程序时 它都会挂在时钟屏幕上 屏幕上还显示正在充电
  • Android 音乐播放器应用程序:如何为服务中运行的媒体播放器设置完整的侦听器?

    我正在编写一个音乐播放器应用程序 我在服务中有 MediaPlayer 对象 问题是 我不知道如何从服务更新用户界面 例如 我想更新当前歌曲的剩余时间 但是 因为 MediaPlayer 正在服务 我无法设置 MediaPlayer 对象的
  • 片段活动中的 commitAllowingStateLoss()

    我的应用程序使用片段活动 它仅处于纵向模式 无法旋转屏幕 最初我使用的是commit 方法 但现在我计划不加区别地将这些更改为commitAllowingStateLoss 对于碎片活动 是否有任何理由不不加区别地执行此操作而不重新评估我使
  • 使用 Box2d(适用于 Android)进行碰撞检测?

    有人可以解释一下使用 box2d for android 进行碰撞检测的工作原理吗 我无法理解 BBContactListener 以什么方式工作 BBContactListener listener new BBContactListen
  • 如何让surfaceview透明

    大家好 我想让我的 DrawingSurface 视图透明 我尝试了很多东西 但它不起作用 这是我的 xml 代码 使我的表面视图透明
  • Android:从 PhoneGap 应用打开 Play 商店链接

    我想从我的phonegap 3 4 应用程序打开一个指向Google Play 商店的链接 呼唤market details id com google android apps maps导致 ActivityNotFoundExcepti
  • Grade Plugin 3-alpha1 输出文件导致错误

    我正在尝试将项目更新到 Android Studio 3 build gradle 文件中不再接受以下代码片段 applicationVariants all variant gt variant outputs each out gt d
  • 带有工具提示的搜索栏 android

    Hi All 我正在尝试使用工具提示自定义 android 搜索栏 如给定的图像 有没有办法在搜索栏中添加带有拇指的文本视图 或任何其他想法 Thanks 我们可以通过拇指的界限来做到这一点 并在seekbar的progressChange
  • 致命异常:GoogleApiHandler

    在我的项目中 我使用货币化服务 Vungle AppLovin 当我尝试加载广告时 出现此异常 E AndroidRuntime 致命异常 GoogleApiHandler 进程 kz ikar PID 3673 java lang NoS
  • Android SDK WebView调用Activity

    我试图在单击 WebView 组件内的链接时启动活动 我的Webview已加载到里面Main java我想启动SubActivity java当点击网站内的链接时Main java 另外 如何将参数传递给此活动 Example inspec
  • 如何以编程方式检测android中可用的底部软导航栏?

    我试图通过 android 程序确定软导航栏 我没有找到直接的方法来确定 有没有办法找到导航栏的可用性 软导航栏图像在这里 以下方法对我有用并在许多设备上进行了测试 public boolean hasNavBar Resources re
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv
  • Android Webview隐私浏览

    我在我的 Android 应用程序中使用 webview 从多个站点获取一些网页 我对 webview 行为有一些疑问 webview 是否存储历史记录 cookie 表单自动填充信息 如果是的话 我们可以阻止它这样做吗 如果 Webvie
  • FCM(Firebase Cloud Messaging)如何发送到所有手机?

    我创建了一个小型应用程序 能够从 FCM 控制台接收推送通知 我现在想做的是向所有使用 API 安装应用程序的 Android 手机发送推送通知 这就是我完全迷失的地方 有没有办法在不收集所有注册ID的情况下将其发送到所有手机 这是否仅适用

随机推荐

  • QRegExpValidator 与 QTextEdit

    QRegExpValidator 可以与 QTextEdit 小部件一起使用吗 我尝试通过 setValidator 实现 并将 qtextedit 设置为父对象 但它不起作用 你应该使用virtual QValidator State Q
  • 如何为官方 nginx Docker 镜像使用自定义 Nginx 配置?

    我有下一个docker compose file nginx build ports 80 80 443 443 links fpm fpm image php fpm ports 9000 9000 The Dockerfile命令列表是
  • 回溯外部化

    目前我有 logback 配置文件 即logback xml这是src main resources 我想设置日志记录级别 但我想在战争之外进行控制 我能想到的一种解决方案是将其外部化在属性文件中 在服务器启动时加载它并替换占位符 有更好的
  • Opengraph W3C 有效吗?

    我想知道 opengraph 标记是否是 W3C 有效的 当我尝试验证它时 出现以下错误 Line 14 Column 17 there is no attribute PROPERTY 如果它无效 会影响我的页面排名和其他搜索引擎算法吗
  • 为什么 UIFont(descriptor:size:) 比 UIFont(name:size:) 慢 200 倍?

    最近我注意到滚动的性能正在减慢 我追踪了这个问题 发现原因是使用了由UIFont 描述符 大小 https developer apple com library ios documentation UIKit Reference UIFo
  • Numpy 通过交错连接数组

    我有 4 个数组 我想将它们连接成一个交错的数组 我该怎么做呢 gt gt gt import numpy as np gt gt gt a np tile 0 5 2 gt gt gt b np tile 1 5 2 gt gt gt c
  • 使用python查找fits文件中像素的物理坐标

    我想从 python 脚本中获取给定像素的物理天空坐标 我想使用 astropy 的 WCS 但我会在 python 中做任何事情 我已经尝试过这两段代码 from astropy io import fits from astropy w
  • 打印数组 LISP 的内容

    为什么这段代码不打印出数组的内容 defun loopfn state loop for x from 0 to 2 do loop for y from 0 to 2 do aref state x y 这里我传递了一个 3x3 矩阵 它
  • 正则表达式匹配开始和结束字符串

    这看起来应该是微不足道的 但我不太擅长正则表达式 而且这对谷歌来说似乎并不容易 我需要一个以字符串 dbo 开头的正则表达式 并以字符串 fn 结尾 就我而言 我不在乎这两个字符串之间有什么字符 只要开头和结尾正确即可 这是为了匹配 SQL
  • 为什么 LIB 文件具有如此两面性的野兽?

    我正在尝试了解 Microsoft Windows 上的 LIB 文件业务 并且我刚刚有了一个发现 我希望它能够消除迄今为止阻止我清楚掌握该问题的困惑 也就是说 LIB 文件并不是其文件扩展名所表明的那种文件 cd C Program Fi
  • 颤动错误:没有名称为“displayLarge”的命名参数

    我正在开发一个应用程序 两天前我在 git 上发布了最后一次更新 此后就没有再碰过代码 现在 我打开 android studio 当我尝试运行它时 它给了我这个错误 我尝试从计算机中删除存储库 然后再次克隆它 但它不起作用 我也尝试过寻找
  • 如何在FMX(火猴)中加载大位图

    我正在尝试创建一个需要加载的漫画查看器JPG像 1000 16000 这样的大尺寸图像 我的应用程序是在 delphi FMX 中 我已经尝试过使用TImage TImageViewer TImageControl但他们都使用TBitmap
  • Mac OS X 中的环境变量

    更新 以下链接没有完整的答案 必须在两个地方设置路径或变量 一个用于 GUI 一个用于 shell 是蹩脚的 不重复 在 OS X 中设置环境变量 https stackoverflow com questions 135688 setti
  • Powershell 根据早于 x 天的时间移动文件和文件夹

    我是 powershell 新手 正在尝试学习从一个目录到另一个目录的基本文件移动 我的目标是将超过 18 个月的文件和文件夹移动到作为计划任务运行的冷存储文件夹 我需要能够轻松修改它的目录以满足我们的需求 它需要保留文件夹结构并仅移动符合
  • 将 mongodb 返回对象转换为字典

    我将 Bottle 框架与 mongoengine 一起使用 我有一个订单模型 class OrderDetail Option orderDetailsQty FloatField def to dict self return mong
  • 对(flask-restful)GET API 调用进行单元测试时出现 500 INTERNAL SERVER ERROR

    我已经对我的 Flask restful API 模块中的所有方法进行了单元测试 现在我想通过实际进行 API 调用来测试 get 方法 我预计此测试会出现错误 400 我的资源类 class Response Resource marsh
  • WPF 本地化:使用 StringFormat 的动态资源?

    我正在使用 ResourceDictionary 在 NET 4 中进行本地化 有人有使用字符串格式的值的解决方案吗 例如 假设我有一个带有 SomeKey 键的值
  • 如何从 GameScene 中的 ViewController 调用方法

    我的 viewController 中有一个自定义 segue 的方法 如下所示 func gameOver performSegueWithIdentifier GameOver sender nil 我在 GameScene swift
  • MySQL表间自增

    在MySQL中 是否可以在两个不同的表中拥有自动递增的列 示例 table1 具有 secondaryid 列 table2 也具有 secondaryid 列 table1 secondaryid 和 table2 secondaryid
  • 以编程方式清除应用程序的数据

    我想以编程方式清除应用程序的数据 应用程序的数据可能包含数据库 共享首选项 内部 外部文件或应用程序内创建的任何其他文件等任何内容 我知道我们可以通过以下方式清除移动设备中的数据 设置 gt 应用程序 gt 管理应用程序 gt 我的应用程序