2011-05-31 67 views
0

我想使用备份代理用于保存用户的喜好:Android 2.2数据备份:如何使用PreferenceActivity进行备份?

http://developer.android.com/guide/topics/data/backup.html

在这篇文章中,它解释了如何备份SharedPreferences:

http://developer.android.com/guide/topics/data/backup.html#SharedPreferences

但是它没有解释如何在PreferenceActivity(http://developer.android.com/reference/android/preference/PreferenceActivity.html)用于保存用户偏好时进行备份!

我的应用程序有一个设置活动扩展PreferenceActivity,它从preference.xml文件(其中配置了PreferenceScreen)加载设置。当PreferenceActivity显示时,用户可以设置首选项的值。如何使用Data Backup API来保存用PreferenceActivity设置的用户数据?

回答

4

SharedPreferences是一个可以访问PreferenceActivity生成的首选项的类。换句话说,默认首选项使用sharedPreferences类,就像您手动操作一样。您使用的密钥当然是您在首选项中输入的密钥.xml

因此,您可以按照您提供的首选活动为您添加的设置提供的链接中详细说明的方式使用SharedPreferences。

+0

在这种情况下,应该使用PreferenceActivity的SharedPreferences文件名称。在使用SharedPreferences的备份示例中,代码是:'SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this,PREFS);''PREFS =“user_preferences”'。 user_preferences是SharedPreference文件名,使用whith PreferenceActivity的文件名是什么? – whynot 2011-05-31 14:48:55

+0

如果我没有记错的话,android上管理的首选项的默认名称很可能是“user_preferences”。当我有空时我可以检查,但是你应该管理我相信。您也可以实现您自己的OnBackup和OnRestore,并通过密钥 – Jason 2011-05-31 15:19:09

+4

提取首选项。我找到了答案,PreferenceActivity使用的文件名是_packagename_preferences_。它可以通过PreferenceActivity中的这段代码得到:'String preferencesName = this.getPreferenceManager()。getSharedPreferencesName();'。谢谢你的帮助。 – whynot 2011-05-31 15:44:09