在我的应用程序中,它会保存数据,例如,当点击某物时,它会计算点击次数,但是当您卸载应用程序时,它会删除数据!
我想通过创建一个设置菜单来解决这个问题,用户可以将他们当前的计数保存到一个文件中,该文件可以保存到手机中,然后如果他们要从头开始重置手机则加载?
我该怎么做?
当您删除应用程序时,如果您使用与您的应用程序相关的外部存储,所有应用程序数据都将被删除(外部、内部、共享首选项)。
例如,外部存储的路径是:
(API 8+):getExternalFilesDir()
(API 7-):getExternalStorageDirectory()
如果你想持久化数据,你可能想写在一个可共享的外部
(API 8+):getExternalStoragePublicDirectory()
(API 7-):getExternalStorageDirectory()
音乐/ - 媒体扫描仪将此处找到的所有媒体分类为用户音乐。
Podcasts/ - 媒体扫描仪将此处找到的所有媒体分类为播客。
铃声/ - 媒体扫描仪将此处找到的所有媒体分类为铃声。
警报/ - 媒体扫描仪将此处找到的所有媒体分类为警报声音。
Notifications/ - 媒体扫描器将此处找到的所有媒体分类为通知声音。
图片/ - 所有照片(不包括用相机拍摄的照片)。
电影/ - 所有电影(不包括用摄像机拍摄的电影)。
下载/ - 其他下载。
我记得,在您的应用程序卸载后共享路径不会被删除,但不好的是其他应用程序可以访问它。
顺便说一句,外部只是一个示例,您可能想要使用内部存储,因为并非所有手机都有 SD 卡。
或者,也许您可以将您的数据存储在 Google 的“云”上。每次用户更改值时,您都可以调用“备份代理”将您需要的所有内容存储在 Google 服务器上。因此,如果用户卸载该应用程序并再次安装,您的“备份代理”将再次调用存储在云中的数据并恢复您想要的值。为此,您的应用程序必须相同并使用相同的密钥签名。使用此服务时,不同的密钥(例如发布和调试密钥)是不同的应用程序。
有关备份服务的更多信息,请访问http://developer.android.com/guide/topics/data/backup.html和代码示例,请访问http://developer.android.com/training/cloudsync/backupapi.html
你只需要修改你的 AndroidManifestandroid:backupAgent
和一个实现BackupAgent
接口的类onBackup
和onRestore
方法。
将您的数据保存到 SD 卡,以防止卸载时删除数据。或将其存储在远程服务器上。