Android禁止在发生清除数据事件时删除离线数据或数据库

时间:2019-04-09 11:33:37

标签: android android-sqlite android-file android-settings

如果网络不可用,请将一些重要信息存储到内部存储的 sqlite数据库文件中。 可用网络后,它将在后台同步到服务器。

但是,当用户执行清除数据时,它会删除存储在内部存储器中的数据库文件。因此,我面临很多数据丢失。

  

我已经搜索了如何捕获清除数据事件,并提出了以下问题:-

  

我无法将该数据存储在外部存储设备上,因为它可以   用户使用文件管理器轻松访问,他们可以将其删除   手动。

     

所以我的问题是

  1. 如何防止我的离线数据被删除?

  2. 有什么方法可以将离线数据保存在安全的地方,并且只能通过应用程序访问?

对于这种情况,请向我提出任何可能的解决方案。

预先感谢

1 个答案:

答案 0 :(得分:3)

  

如何防止我的离线数据被删除?

不能。它是用户的设备,而不是您的设备,因此它不是您的数据,而是用户的数据。用户可以做自己想要的事情。

  

有什么方法可以将离线数据保存在安全的地方,并且只能通过应用程序进行访问?

Internal storage阻止用户或其他应用直接访问您的文件。它不会阻止用户通过“清除数据”或卸载应用程序来删除这些文件。

  

我们可以为我的应用禁用清除数据事件吗?

不是。在某些版本的Android上,you can get control when the user clicks that button。但是:

  • 不要以为所有设备都支持此功能
  • 设备制造商可能会为用户提供其他清除数据的方式
  • 用户仍然可以卸载并重新安装该应用,这将清除数据