即使在卸载应用程序后,我也必须为我的应用程序保留 2 个字符串。关于最终用户的设备没有 SD 卡并且他们没有互联网连接,即使在应用程序被卸载后,我怎么能保留这两个字符串?
我将非常感谢任何回应。谢谢
即使在卸载应用程序后,我也必须为我的应用程序保留 2 个字符串。关于最终用户的设备没有 SD 卡并且他们没有互联网连接,即使在应用程序被卸载后,我怎么能保留这两个字符串?
我将非常感谢任何回应。谢谢
除非您的目标是非常旧的手机,否则您无需担心没有外部存储。只要您Environment.getExternalStorageDirectory()
用作参考,就应该没有问题,但如果您绝对担心这一点,您可以检查外部存储是否不存在,然后选择内部存储。 查看开发人员文档中的此链接以获得更多信息。
如果 External 确实不可用,您可以保存到 Internal memory,但您必须为此声明一个新权限,这可能会阻止某些人。
您必须将其写入 SD 卡/内部存储器,并希望用户不要删除它。然而,这是一种非常脆弱的方法。据我所知,没有其他解决方案。
手机内部存储也被视为“SD 卡”。如果您创建一个文件夹并将其保存在一个文本文件中,它应该是安全的,因为用户在卸载后没有手动删除文件夹。
请查看以下网页中的“保存应共享的文件”部分。制作卸载后仍然存在的文件需要使其可供其他应用程序/用户读取和修改。如果不打算使用这些文件选项,则应考虑替代应用程序设计。
http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
重新安装后,您的应用可以使用以下函数访问创建的公共目录:
public static File getExternalStorageDirectory ()
关于上述功能,根据谷歌:
注意:不要被这里的“外部”这个词弄糊涂了。最好将此目录视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并且在所有应用程序之间共享(不强制执行权限)。传统上这是一张 SD 卡,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同,并且可以作为文件系统安装在计算机上。
此外,Google 建议将共享文件放置到现有的公共目录中,以免污染用户的根命名空间。
字符串是每个用户唯一的还是特定于应用程序的?无论哪种情况,正确的做法是将其保存在某种远程服务器中。Firebase就是我用来做这种事情的。检查它在您的班级中是否存在,如果它不存在,请Application
下载并保存它。SQLite
然而,对于用户特定的数据,您将需要某种身份验证,以便您知道哪个用户正在获取什么。Firebase 也很好地做到了这一点。
但是,按照 OP 的要求(没有互联网,没有 SD 卡),除了不道德的方法之外,我没有看到任何其他方法。