卸载后Android持久数据

时间:2013-10-30 13:29:23

标签: android save persistence uninstall

即使卸载了应用程序,我也必须为我的应用程序保留2个字符串。关于最终用户没有设备的SD卡,他们没有互联网连接,即使卸载了应用程序,我怎么能坚持这两个字符串?

我非常感谢任何回应。 感谢

4 个答案:

答案 0 :(得分:2)

除非您定位的是非常旧的手机,否则您无需担心没有外置存储空间。只要您使用Environment.getExternalStorageDirectory()作为参考,就不会有问题,但如果您对此非常关注,可以检查外部存储是否不存在,然后选择转到内部存储。 Check out this link from the developer docs for a little more insight

如果外部确实无法使用,则可以保存到内部存储器,但是您必须为此声明一个新的权限,这可能会阻止某些人。

答案 1 :(得分:0)

您必须将其写入SD卡/内部存储器,并希望用户不会将其删除。但是,这是一种非常脆弱的方法。据我所知,没有其他解决方案。

答案 2 :(得分:0)

手机内部存储也被视为“SD卡”。如果您创建一个文件夹并将其保存在文本文件中,则应该是安全的,因为用户在卸载后不会手动删除文件夹。

请查看以下网页中的“保存应共享的文件”部分。制作一个在卸载后仍然存在的文件需要使其可供其他应用程序/用户阅读和修改。如果不打算使用这些文件选项,则应考虑使用其他应用程序设计。

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

重新安装后,您的应用可以使用以下功能访问创建的公共目录:

public static File getExternalStorageDirectory ()

关于上述功能,请按照Google:

注意:这里不要混淆“外部”这个词。此目录最好被视为媒体/共享存储。它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上这是一张SD卡,但它也可以作为内置存储器实现,该设备不同于受保护的内部存储器,可以作为文件系统安装在计算机上。

此外,Google建议将共享文件放入现有的公共目录中,以免污染用户的根命名空间。

答案 3 :(得分:0)

每个用户的字符串是唯一的还是特定于应用的?在任何一种情况下,正确的做法是将其保存在某种远程服务器中。 Firebase是我用于此类事情的东西。检查它是否存在于{ "Urls": [{ "url": "someurl", "val": "testurl" }, { "url": "someurl2", "val": "website" }] } 类中并下载并保存到Application(如果它不存在)。但是,对于特定于用户的数据,您将需要某种身份验证,以便了解哪个用户正在获得什么.Firebase也能很好地完成此任务。

按照OP的要求(没有互联网,没有SD卡),除了一个不道德的方式之外,我没有看到任何其他方式。