Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android中使用的PreferenceManager和SharedReference类是什么?_Java_Android - Fatal编程技术网

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

Java Android中使用的PreferenceManager和SharedReference类是什么?,java,android,Java,Android,我在一个关于启动屏幕首选项管理器和共享参考的教程中遇到了两个类。虽然我没有从教程中获得很多关于它们的知识 那么,有人能给我解释一下这两个类的用途吗?正如Artoo Detoo解释的那样。。。SharedReferences有点像web开发中的会话。您可以使用它们将值从一个活动传递到另一个活动,除非另有更改,否则在应用程序正在使用时,它一直保持这种状态 它还用于用户值(在用户登录或注册后)。这就是我可以在Android开发者网站上谈论的内容: 用于帮助从活动或XML创建首选项层次结构 用于访问

我在一个关于启动屏幕首选项管理器和共享参考的教程中遇到了两个类。虽然我没有从教程中获得很多关于它们的知识


那么,有人能给我解释一下这两个类的用途吗?

正如Artoo Detoo解释的那样。。。SharedReferences有点像web开发中的会话。您可以使用它们将值从一个活动传递到另一个活动,除非另有更改,否则在应用程序正在使用时,它一直保持这种状态


它还用于用户值(在用户登录或注册后)。这就是我可以在Android开发者网站上谈论的内容:

用于帮助从活动或XML创建首选项层次结构

用于访问和修改由返回的首选项数据的接口 GetSharedReferences(字符串,int)。对于任何特定的 在首选项中,该类只有一个实例可供所有客户端使用 分享

简而言之,
PreferenceManager
通常用于创建
PreferenceActivity
或使用默认值从应用程序中的
.xml
文件加载某些首选项,并保存自己对
共享引用的引用

SharedReferences
是存储和检索组成首选项的键/值对的地方。因此,您可以添加带有键的变量,以便稍后检索数据。这将输入到
首选项管理器
,该管理器可以处理添加默认值和设置默认
共享引用

您可以在整个应用程序中使用
SharedReferences
,而无需使用
PreferenceManager
,但严格来说,情况并非如此

进一步阅读:

  • (还有),它使用
    PreferenceManager
    在示例中
  • 安卓哪个 使用
    SharedReferences
    (以及其他选项)
  • 关于Android持久性
  • 正确使用
    SharedReferences

首选项是一种用于存储和检索配对的Android轻量级机制 基本数据类型(也称为映射和关联数组)

在表单的每个条目中,键是字符串,值必须是基本数据类型

当我们需要它们时:

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
首选项通常用于保存状态信息和共享数据 在应用程序的几个活动中

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

假设您希望在应用程序中保存用户名以备将来使用。你们不能把这样一个小东西保存在数据库中,所以你们最好把它保存在你们的首选项中。首选项就像一个文件,您可以在应用程序生命周期的任何时候以键值对的方式从中检索值

再举一个例子,如果你使用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.

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

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


参考-

它们用于存储和检索应用程序的设置。这就像将一些变量及其值存储在一个文件中。这些实际上被称为键/值对;卸载应用程序时,这些值将丢失。它们通常在更新期间保持安全;但是“由于一些“未知”问题,数据可能会丢失”,因此在切换用户已登录的活动时,应用程序不会允许用户登录,否则一旦更改活动,它会将自身重置为已注销?或者再举一个例子,用户为应用程序关闭音乐,并希望应用程序记住这将处理它?除非用户更改它,否则它不会更改它的值…也就是说,如果开发人员给用户。。。你的第二个例子回答了所有问题。这是对原始问题的一个比公认的答案更简洁的回答-谢谢。