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