Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在卸载后保留数据_Android_Save_Persistence_Uninstallation - Fatal编程技术网

Android在卸载后保留数据

Android在卸载后保留数据,android,save,persistence,uninstallation,Android,Save,Persistence,Uninstallation,即使在卸载应用程序后,我也必须为我的应用程序保留2个字符串。考虑到终端用户的设备没有SD卡,他们也没有互联网连接,我怎么能在卸载应用程序后保留这两个字符串 如有任何回应,我将不胜感激。 谢谢您必须将其写入SD卡/内部存储器,希望用户不要删除它。然而,这是一种非常脆弱的方法。据我所知,没有其他解决方案。手机内部存储也被视为“SD卡”。如果您创建了一个文件夹并将其保存在文本文件中,那么在卸载后用户不会手动删除文件夹的情况下,应该是安全的 请查看以下网页中的“保存应共享的文件”部分。要使文件在卸载后保

即使在卸载应用程序后,我也必须为我的应用程序保留2个字符串。考虑到终端用户的设备没有SD卡,他们也没有互联网连接,我怎么能在卸载应用程序后保留这两个字符串

如有任何回应,我将不胜感激。
谢谢

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

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

请查看以下网页中的“保存应共享的文件”部分。要使文件在卸载后保持不变,需要使其他应用程序/用户可以读取和修改该文件。如果这些文件选项不是有意的,你应该考虑另一种应用程序设计。

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

public static File getExternalStorageDirectory ()
关于上述功能,根据谷歌:

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


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

除非您的目标是非常旧的手机,否则您不必担心没有外部存储。只要您使用
Environment.getExternalStorageDirectory()
作为参考,就不会有问题,不过如果您非常关心这一点,可以检查外部存储是否不存在,然后选择转到内部存储


如果外部确实不可用,您可以保存到内部内存,但您必须为此声明一个新的权限,这可能会阻止某些人。字符串是每个用户独有的还是特定于应用程序的?无论哪种情况,正确的做法都是将其保存在某种远程服务器中。是我用来做这类事情的。在
应用程序
类中检查它是否存在,如果它不存在,请下载并保存到
SQLite
。但是,对于特定于用户的数据,您需要某种身份验证,以便知道哪个用户得到什么。Firebase也能很好地做到这一点


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

用户没有SD卡内部存储。如果您在您的私人应用程序环境之外创建文件夹,则不会。如果文件夹位于应用程序环境之外,是否可以访问该文件夹?我的目标设备为Android 4.0及以上版本,但如果我使用内部内存,则根据Android开发者网站卸载应用程序时,所有数据都将被删除。“默认情况下,保存到内部存储的文件是应用程序的专用文件,其他应用程序无法访问这些文件(用户也不能)。当用户卸载应用程序时,这些文件将被删除。”是,默认情况下。如果你给它其他的上下文,它可能会持续。如果您使用其他模式,如
Context.MODE\u APPEND
Context.MODE\u WORLD\u READABLE
,或
Context.MODE\u WORLD\u WRITABLE
,您可以在卸载后保留文件。您使用什么Firebase服务来执行此@ojonugwa?我精通Firebase,但不知道我会使用什么服务来保留用户身份。这是否回答了您的问题?