在我的应用程序中,它会保存数据,例如,点击某物时会记录点击次数,但是当您卸载应用程序时,它会删除数据!保存应用程序数据?
我想通过设置菜单来解决这个问题,用户可以将其当前计数保存到可保存到手机中的文件中,然后在从头开始重置手机时加载该文件?
我该怎么做?
在我的应用程序中,它会保存数据,例如,点击某物时会记录点击次数,但是当您卸载应用程序时,它会删除数据!保存应用程序数据?
我想通过设置菜单来解决这个问题,用户可以将其当前计数保存到可保存到手机中的文件中,然后在从头开始重置手机时加载该文件?
我该怎么做?
或者,您可以将数据存储在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
方法的类。
将您的数据保存到SD卡,以预先卸载时删除数据。或者将其存储在远程服务器上。
当您删除该应用程序时,将删除所有应用程序数据(外部,内部,共享的前缀)。如果您使用与您的应用程序相关的外部存储。
例如路径外部存储将是:
(API 8+):getExternalFilesDir()
(API 7-):getExternalStorageDirectory()
如果你想保持数据你可能想在一个共享的外部
(API 8+)写:getExternalStoragePublicDirectory()
(API 7-):getExternalSt orageDirectory()
音乐/ - 媒体扫描程序将此处找到的所有媒体分类为用户音乐。
播客/ - 媒体扫描程序将所有在这里找到的媒体分类为播客。
铃声/ - 媒体扫描程序将此处找到的所有媒体分类为铃声。
警报/ - 媒体扫描程序会将此处找到的所有媒体归类为警报声。
通知/ - 媒体扫描程序将此处找到的所有媒体分类为通知声音。
图片/ - 所有照片(不包括使用相机拍摄的照片)。
电影/ - 所有电影(不包括使用摄像机拍摄的电影)。
下载/ - 其他下载。
我记得,共享的路径没有得到您的应用程序卸载后删除,但坏的是,其他应用程序可以访问它。
顺便说一句,外部只是一个例子,你可能想要使用内部存储,因为不是所有的手机都有SD卡。
如何在设置选项卡上做些什么,用户可以从文件中保存数据和加载? – James 2013-04-09 17:58:19
你如何做到这一点并不重要。将它保存在正确的位置很重要。和SD卡或远程服务器是一个。 – 2013-04-09 18:12:36