1

在我的应用程序中,它会保存数据,例如,当点击某物时,它会计算点击次数,但是当您卸载应用程序时,它会删除数据!

我想通过创建一个设置菜单来解决这个问题,用户可以将他们当前的计数保存到一个文件中,该文件可以保存到手机中,然后如果他们要从头开始重置手机则加载?

我该怎么做?

4

3 回答 3

3

当您删除应用程序时,如果您使用与您的应用程序相关的外部存储,所有应用程序数据都将被删除(外部、内部、共享首选项)。

例如,外部存储的路径是:

(API 8+):getExternalFilesDir()

(API 7-):getExternalStorageDirectory()

如果你想持久化数据,你可能想写在一个可共享的外部

(API 8+):getExternalStoragePublicDirectory()

(API 7-):getExternalStorageDirectory()

音乐/ - 媒体扫描仪将此处找到的所有媒体分类为用户音乐。

Podcasts/ - 媒体扫描仪将此处找到的所有媒体分类为播客。

铃声/ - 媒体扫描仪将此处找到的所有媒体分类为铃声。

警报/ - 媒体扫描仪将此处找到的所有媒体分类为警报声音。

Notifications/ - 媒体扫描器将此处找到的所有媒体分类为通知声音。

图片/ - 所有照片(不包括用相机拍摄的照片)。

电影/ - 所有电影(不包括用摄像机拍摄的电影)。

下载/ - 其他下载。

开发人员中解释

我记得,在您的应用程序卸载后共享路径不会被删除,但不好的是其他应用程序可以访问它。

顺便说一句,外部只是一个示例,您可能想要使用内部存储,因为并非所有手机都有 SD 卡。

于 2013-04-09T18:18:53.033 回答
3

或者,也许您可​​以将您的数据存储在 Google 的“云”上。每次用户更改值时,您都可以调用“备份代理”将您需要的所有内容存储在 Google 服务器上。因此,如果用户卸载该应用程序并再次安装,您的“备份代理”将再次调用存储在云中的数据并恢复您想要的值。为此,您的应用程序必须相同并使用相同的密钥签名。使用此服务时,不同的密钥(例如发布和调试密钥)是不同的应用程序。

有关备份服务的更多信息,请访问http://developer.android.com/guide/topics/data/backup.html和代码示例,请访问http://developer.android.com/training/cloudsync/backupapi.html

你只需要修改你的 AndroidManifestandroid:backupAgent和一个实现BackupAgent接口的类onBackuponRestore方法。

于 2013-04-09T18:47:16.043 回答
0

将您的数据保存到 SD 卡,以防止卸载时删除数据。或将其存储在远程服务器上。

于 2013-04-09T17:49:47.967 回答