Android中使用的PreferenceManager和SharedPreference类是什么?

时间:2014-03-04 17:09:20

标签: java android

我遇到了在启动画面PreferenceManager和SharedPreferences的教程中使用的两个类。虽然我没有从教程中获得关于它们的大量知识。

那么有人可以向我解释这两个类的用途或用途吗?

4 个答案:

答案 0 :(得分:11)

来自Android开发者网站:

  

PreferenceManager:

     

用于帮助从活动或XML创建Preference层次结构。

     

SharedPreferences:

     

用于访问和修改返回的首选项数据的接口   getSharedPreferences(String,int)。对于任何特定的一组   首选项,所有客户端都有此类的单个实例   份额。

简单地说,当您想要使用默认值从应用程序中的PreferenceManager文件创建PreferenceActivity或加载某些首选项时,通常会使用.xml,并保留它自己的引用到SharedPreferences

SharedPreferences用于处理构成您的偏好的键/值对的存储和检索。因此,您可以使用键添加变量以便稍后检索数据。这会输入PreferenceManager,可以处理添加默认值并设置默认值SharedPreferences

您可以在整个应用程序中使用SharedPreferences而无需使用PreferenceManager,但相反的情况并非严格属实。

进一步阅读:

答案 1 :(得分:5)

偏好设置是一种用于存储和检索配对的Android轻量级机制 原始数据类型(也称为地图和关联数组)。

在表单的每个条目中,键是一个字符串,值必须是原始数据类型。

当我们需要他们时:

首选项通常用于保存状态信息和共享数据 在一个应用程序的几个活动中。

共享首选项是android中的存储,可用于存储与功能,用户自定义或其配置文件相关的一些基本内容。

假设您要在应用中保存用户名,以备将来使用。你不能在数据库中保存这么小的东西,所以你最好把它保存在你的首选项中。首选项就像一个文件,您可以在应用程序的生命周期中随时以KEY-VALUE对方式检索值。

再举一个例子,如果您使用whatsapp,我们在那里有一个壁纸选项。无论何时打开whatsapp,应用程序如何知道哪个图像可以作为墙纸。此信息存储在首选项中。每当您清除任何应用程序的数据时,都会删除首选项。

如何使用这些偏好:

final int mode = Activity.MODE_PRIVATE; 
final String MYPREFS = "MyPreferences_001"; 

// create a reference to the shared preferences object 
SharedPreferences mySharedPreferences; 

// obtain an editor to add data to my SharedPreferences object 
SharedPreferences.Editor myEditor;

mySharedPreferences = getSharedPreferences(MYPREFS, 0); 

// using this instance you can get any value saved.
 mySharedPreferences.getInt("backColor",Color.BLACK); // default value is BLACK set here

编辑共享偏好:

myEditor = mySharedPreferences.edit(); 
//edit and commit
myEditor.putString("backColor", Color.RED); 
myEditor.commit() //very imp.

答案 2 :(得分:1)

正如Artoo Detoo所解释的那样...... Sharedpreferences有点像Web开发中的会话。您可以使用它们将值从一个活动传递到另一个活动,并且只要应用程序正在使用它就会保持这种状态,除非另有更改。

它也用于用户值(登录或注册用户后)。那多少我可以谈论它

答案 3 :(得分:1)

SharedPreference API用于保存键值对。它们将它们存储在文件中,并根据您实例化SharedPreference对象的模式为私有或公共。它们用于存储一小组键值对。这里的键是String类型,值可以是任何原始类型。

PreferenceManager 是Preference API的一部分。 Preference API允许您定义完整的设置UI。此设置UI是XML布局。您使用PreferenceManager来管理此Preference对象的树。它使用SharedPreference API存储用户可能使用您创建的图形布局更改的各种设置。

参考 - "Android Docs Training"