保存应用数据?

时间:2013-04-09 17:47:37

标签: java android

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

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

我该怎么做?

3 个答案:

答案 0 :(得分:3)

当您删除该应用时,所有应用数据都将被删除(外部,内部,共享优先)。如果您使用与您的应用相关的外部存储。

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

(API 8+):getExternalFilesDir()

(API 7-):getExternalStorageDirectory()

如果要保留数据,可能需要在可共享的外部

中编写

(API 8+):getExternalStoragePublicDirectory()

(API 7-):getExternalStorageDirectory()

音乐/ - 媒体扫描程序会将此处的所有媒体分类为用户音乐。

播客/ - 媒体扫描程序会将此处的所有媒体分类为播客。

铃声/ - 媒体扫描程序会将此处的所有媒体分类为铃声。

警报/ - 媒体扫描程序会将此处的所有媒体分类为警报声。

通知/ - 媒体扫描程序会将此处的所有媒体分类为通知声音。

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

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

下载/ - 杂项下载。

Developers

中解释

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

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以及使用BackupAgentonBackup方法实现onRestore界面的类。

答案 2 :(得分:0)

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