Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.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_Sharedpreferences_Android Sqlite - Fatal编程技术网

如何防止在android中卸载应用程序后删除文件?

如何防止在android中卸载应用程序后删除文件?,android,sharedpreferences,android-sqlite,Android,Sharedpreferences,Android Sqlite,我想防止用户或任何其他应用程序删除我的文件。在这个文件中,我必须保存一个长值和一些信息。我使用了SharedReferences和SQLite数据库来存储这些信息。但我注意到,如果我的应用程序被卸载或清除了数据,数据库或SharedReferences也会被删除。现在我想我会将数据保存在该文件中,并保护它不被任何形式的删除。这样,即使在卸载后,我的应用程序也可以随时恢复数据。可能吗 您最好将数据保存为Android文件系统上的文件。您需要将“写入外部存储”权限添加到清单中: <us

我想防止用户或任何其他应用程序删除我的文件。在这个文件中,我必须保存一个长值和一些信息。我使用了
SharedReferences
SQLite
数据库来存储这些信息。但我注意到,如果我的应用程序被卸载或清除了数据,数据库或
SharedReferences
也会被删除。现在我想我会将数据保存在该文件中,并保护它不被任何形式的删除。这样,即使在卸载后,我的应用程序也可以随时恢复数据。可能吗

您最好将数据保存为Android文件系统上的文件。您需要将“写入外部存储”权限添加到清单中:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

请在此处查看Android文件API:

这相对简单。您可能希望将文件保存在卸载应用程序时不会删除的某个位置,因此可以将其保存在SD卡上的文件夹中


但是,不能保证用户或其他应用程序(尽管我不知道有多少应用程序会删除任意文件)不会手动删除文件。如果您确实需要有保证的超级持久性,那么我建议将文件存储在云端或服务器上。

要在卸载后继续,您应该将数据保存在外部存储上,但无法阻止用户删除或格式化数据。听起来您正试图强制执行某些持久许可或试用期。如果你想创造一个持久的价值,你必须走出你的应用程序的沙箱;在最新版本的Android中,对外部存储的访问受到了极大的阻碍。您可能希望在设备外跟踪这些值。只需将信息复制到服务器上。您可以提供一些云存储教程吗。我看到了一些代码。但我不清楚。这将是一个更复杂的问题,并将取决于你试图实现什么。最好将文件存储在服务器上的某个位置,以某种方式与用户关联(可能是用户帐户或设备ID)。如果您只是尝试恢复用户设置或类似的设置,那么在设备上存储应该适合您的需要。如果323go是正确的,并且您正在尝试创建类似“试用期”的内容,那么使用服务器进行身份验证比尝试在客户端进行验证要好得多。