【问题标题】:Retaining data after uninstalling the app卸载应用程序后保留数据
【发布时间】:2016-06-16 15:58:49
【问题描述】:

有没有办法在卸载应用程序后保留我的一些数据,而不是在设备上再次安装它。我需要检查我的应用程序以前是否已安装在一个设备上。

【问题讨论】:

标签: android information-retrieval data-retrieval data-recovery


【解决方案1】:

您可以使用共享首选项来存储这些数据。 使用 MODE_WORLD_READABLE 创建共享引用。 您可以在应用程序运行时将标志设置为 true,并且可以在每次安装时提取此值以查明此值是否存在。 如下所示:

当应用程序运行时(在你的应用程序的启动代码中写入此代码-首先触发):

SharedPreferences sharedpreferences = context.getSharedPreferences("test", Context.MODE_WORLD_READABLE);
                SharedPreferences.Editor editor = sharedpreferences.edit();
                editor.putString("app_already_installed", "true");
                editor.commit();

检查应用是否已经安装(写在你想检查早期安装的地方):

SharedPreferences sharedpreferences = context.getSharedPreferences("test", Context.MODE_WORLD_READABLE);
String is_app_already_installed= sharedpreferences.getString("app_already_installed", "false");

if(is_app_already_installed.equals("true"){
//do-something
}
else{
//do-something
}

【讨论】:

  • 此常量在 API 级别 17 中已弃用
【解决方案2】:

是的,如果您将应用数据保存在设备的外部存储中是可能的,因为即使您的应用被卸载,该数据也不会被删除。

在重新安装应用程序后,您可以读取文件数据以确定该应用程序是以前安装的还是全新安装的,以防该文件不存在。

注意:-外部目录中的数据对用户可见,因此用户可能会从文件管理器中删除数据。

【讨论】:

  • 创建一个隐藏文件夹或文件。除非他选择显示隐藏文件夹选项,否则用户不会看到它。您所要做的就是添加“。”在文件夹或文件名后面,例如“.MyAppFile”
  • 这就是问题所在。我不想将文件保存在外部设备上,因为我不想与用户共享该数据。这是非常私密的数据,正如我告诉过你的,它非常重要,我也不让用户删除该文件
  • 因此您可能可以在应用启动期间发送设备 ID。服务器将具有安装您的应用程序的所有设备的设备 ID。检查您是否可以从服务器下载该数据并存储在设备的内部存储中。
  • 我为你投票但没有足够的声望点所以我的投票没有公开显示:(
猜你喜欢
  • 2014-03-27
  • 1970-01-01
  • 2020-07-04
  • 2013-11-10
  • 2016-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多