Android 防止在清除数据事件时删除应用程序离线数据或数据库

Android prevent deleting application offline data or database on Clear data event

网络不可用的情况下,将一些重要信息存储到sqlite数据库文件 在内部存储上。当网络可​​用时,它将在后台同步到服务器。

但是当用户执行清除数据时,它删除数据库和存储在文件内部存储器。因此,我面临着大量数据丢失的问题。

我已经在搜索,如何捕获清除数据事件以及以下相关问题:

另外 我不能将数据存储在外部存储器上,因为它可以 用户使用文件管理器轻松访问,他们可以删除它 手动。

所以我的问题是:

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

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

How I can prevent my offline data from deleting?

你不能。它是用户的设备,不是你的,所以它不是你的数据——它是用户的数据。用户可以为所欲为。

Is there any way to save offline data at secure place and access it only through application?

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

Can we disable, Clear Data event for my application?

不是真的。在 Android、you can get control when the user clicks that button 的某些版本上。然而:

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