`

笑谈Android之Shared Preferences

阅读更多

  在Activity中使用。有下面这个方法。

SharedPreferences  	 getPreferences(int mode)  通过Activity可以返回一个SharedPrefenences的实

在Context下有这个方法  根据文件名称和mode来实例化SharedPreferences对象
abstract SharedPreferences
	getSharedPreferences(String name, int mode)
Retrieve and hold the contents of the preferences file 'name', returning a SharedPreferences through which you can retrieve and modify its values.
  
  因为Activity继承于Context,则在Activity都可以通过以上两种方法来实例化SharedPreferences对象


得到了SharedPreferences对象,就可以使用下面的方法。

public interface
SharedPreferences

<!-- end header -->
android.content.SharedPreferences
Class Overview

Interface for accessing and modifying preference data returned by getSharedPreferences(String, int) . For any particular set of preferences, there is a single instance of this class that all clients share. Modifications to the preferences must go through an SharedPreferences.Editor object to ensure the preference values remain in a consistent state and control when they are committed to storage.

Note: currently this class does not support use across multiple processes. This will be added later.
See Also

    * getSharedPreferences(String, int)

SharedPreferences是一个接口,如果想添加和修改Preference data,就要通过getSharedPreferences(String,int)。在一个类里面实例化,就可以在其它地方共享这些数据。
目前这个类不支持多进程使用。


<!-- jd-descr -->
Summary

<!-- ======== NESTED CLASS SUMMARY ======== -->

Nested Classes

这两个接口是SharedPreferences的内部类
interface 	SharedPreferences.Editor 	SharedPreferences编辑器
interface 	SharedPreferences.OnSharedPreferenceChangeListener 	 当数据改变的时候调用
<!-- ========== METHOD SUMMARY =========== -->
Public Methods
abstract boolean 	contains (String key)   数据库里是否包含key的键值
abstract SharedPreferences.Editor 	edit ()      通过这个方法返回一个SharedPrefenences.Editor实例化对象
abstract Map <String , ?> 	getAll ()  返回所有的键值对,注意“?”,它代表你存储的数字类型,是泛型的用法
abstract boolean 	getBoolean (String key, boolean defValue) 通过key从Preferences获取boolean类型的数据
abstract float 	getFloat (String key, float defValue) 通过key从Preferences获取float类型的数据
abstract int 	getInt (String key, int defValue) 通过key从Preferences获取int类型的数据
abstract long 	getLong (String key, long defValue) 通过key从Preferences获取long类型的数据
abstract String 	getString (String key, String defValue) 通过key从Preferences获取String类型的数据
abstract void 	registerOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)
注册一个监听器。当preferences数据改变的时候调用这个监听器下的方法
abstract void 	unregisterOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)
注册一个监听器。取消先前注册的回调方法。



通过上面的editor() 方法就可以实例化SharedPreferences.Editor对象,接着就可以使用下面的一些方法进行存储。


Public Methods
abstract SharedPreferences.Editor 	

                                      
abstract boolean 	clear ()    删除所有值

commit ()   提交你设置的值
abstract SharedPreferences.Editor 	putBoolean (String key, boolean value)   设置boolean值存储
abstract SharedPreferences.Editor 	putFloat (String key, float value)  设置浮点型数据存储
abstract SharedPreferences.Editor 	putInt (String key, int value)  设置整形数据存储
abstract SharedPreferences.Editor 	putLong (String key, long value) 设置长整型
abstract SharedPreferences.Editor 	putString (String key, String value)  设置字符串数据存储
abstract SharedPreferences.Editor 	

remove (String key)  删除一个
 

SharedPreferences存储类效率分析

      SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存,它是什么样的处理方式呢?

SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,android123提示最 终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。



Android数据存取之Preferences

这种方式应该是用起来最简单的Android读写外部数据的方法了。他的用法基本上和 J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单、透明的方式来保存一些用户个性化设置的字体、颜色、位置 等参数信息。一般的应用程序都会提供“设置”或者“首选项”的这样的界面,那么这些设置最后就可以通过Preferences来保存,而程序员不需要知道 它到底以什么形式保存的,保存在了什么地方。当然,如果你愿意保存其他的东西,也没有什么限制。只是在性能上不知道会有什么问题。

在Android系统中,这些信息以XML文件的形式保存在 /data/data/PACKAGE_NAME /shared_prefs 目录下。

 

 

 

 

 

 

 

  • 大小: 5.9 KB
分享到:
评论
4 楼 lishali12345 2010-07-28  
楼主发帖的诚意还是...
3 楼 dengrui0917 2010-06-09  
虽说没看太明白,但这么用心,领情
2 楼 robot18ok 2010-05-15  
排版这么着怎么看啊
1 楼 hanjiangit 2010-05-13  
想学习android 要不要先学习下JavaME? 或者MIDP?  或者可以直接学习之 有java基础

相关推荐

    Android 使用Shared Preferences进行数据存储-样例.rar

    Android 使用Shared Preferences进行数据存储-样例,演示如何使用 Shared Preferences 获得数据和保存数据、如何使用getPreferences方法创建文件的模式,以及如何使用getPreferences模拟用户参数设置、查看 ...

    Android代码-一个快速方便地访问Android Shared preferences 库。

    FastSave is An Android library for fast and easy access to Android Shared preferences. It allows you to save any type or list in the sharedpreferences and retrieve it in convenient way. Installation ...

    利用Shared Preferences,在2个不同的Activity传递数据

    在Android应用开发中,数据的持久...总之,通过 Shared Preferences,Android 开发者可以在多个 Activity 之间轻松传递数据,尤其适用于保存用户登录状态等简单信息。合理使用这一工具,可以使代码更加简洁且易于维护。

    android 数据存储之 Shared Preferences

    android:authorities="your.package.name_preferences" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider"&gt; android:name="android.support....

    shared-preferences for flutter

    Shared Preferences是Android平台上的一个轻量级的数据存储类,用于保存和读取应用程序的一些常用配置和数据,比如用户设置的参数、游戏分数、应用程序状态等。Shared Preferences类似于Windows中的INI文件,它允许...

    Android代码-shared-preferences-helper

    Android Shared Preferences Helper Android Library to handle SharedPreferences boilerplate code and other tools Download dependencies { compile 'com.github.seanzor:shared-preferences-helper:1.1.0' }...

    android 数据存取Preferences

    ### Android 数据存取之 Preferences #### 一、概述 在Android开发中,应用程序往往需要存储用户的个性化设置,例如字体大小、背景颜色或是地理位置等信息。为了实现这一需求,Android提供了多种数据存储方式,...

    Android代码-android-secure-preferences

    android-secure-preferences About This project uses the Encryption class from: http://www.java2s.com/Code/Android/Security/AESEncryption.htm Gives an implementation of SharedPreferences, which encrypts...

    Android数据存储(Shared设置)

    共享首选项(Shared Preferences)是Android提供的一种轻量级的数据存储方式,适用于保存少量的键值对数据,如用户设置、简单的配置信息等。在本文中,我们将深入探讨如何在Android中使用Shared Preferences进行数据...

    Android代码-Multiplatform-Preferences

    Use a single object : Preferences in your kotlin shared projects Compatible with kotlin android and kotlin native for iphone class MyPresenter { val preferences = Preferences() fun start(){ ...

    streaming_shared_preferences:Flutter项目的React式键值存储。 像shared_preferences一样,但是带有Streams

    Streaming_shared_preferences在之上添加了响应式功能。 它可以执行常规SharedPreferences所做的所有事情,但也可以侦听value的变化。 这样可以非常轻松地使您的小部件与持久值保持同步。入门首先,将streaming_...

    Android源码——sharedPref学习源码.zip

    在Android开发中,Shared Preferences是应用中保存轻量级数据的一种常见方式,它主要用于存储一些简单的键值对数据,如用户设置、应用状态等。在深入理解`sharedPref`的学习源码之前,我们先来回顾一下 Shared ...

    Android-Shared-Preferences-example-application:Android 共享首选项示例应用程序

    Android-Shared-Preferences-example-application Android 共享首选项示例应用程序

    Android代码-preferences-helper

    preferences-helper SharePreferences is very popular with any project and all most all project has SharePreferences for saving data. This library will help you faster in configuration and use ...

    安卓Android源码——sharedPref.rar

    在安卓(Android)平台上,Shared Preferences 是一种轻量级的数据存储机制,用于保存应用程序中的简单键值对数据,如偏好设置或用户配置。这个压缩包文件 "sharedPref.rar" 可能包含了一些示例代码或者解析,以帮助...

    Sharedpreferences存储数据的使用方法_完整Demo_AndroidStudio

    Shared Preferences是Android提供的一种轻量级的数据存储机制,常用于保存应用程序中的配置设置或简单的键值对数据。它以XML格式存储,适合保存少量非结构化的数据。在这个"Sharedpreferences存储数据的使用方法_...

    Android中DataStore替代SharedPreferences

    【Android中的DataStore替代SharedPreferences】 Android开发者们长期以来一直依赖SharedPreferences作为轻量级的数据存储解决方案,它的简单易用性使其在小规模数据存储方面受到了广泛欢迎。然而,随着应用程序...

    Android-Shared-Preferences-Demo-Spring-2020:共享首选项的演示项目

    Android共享首选项演示版2020年Spring 共享首选项演示项目

    安卓Android源码——sharedPref1.rar

    在安卓(Android)平台上,Shared Preferences 是一种轻量级的数据存储机制,用于保存应用程序中的简单键值对数据,如设置、用户偏好等。这个“安卓Android源码——sharedPref1.rar”压缩包文件可能包含了关于如何在...

    Android中使用SharedPeferences存储

    Shared Preferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储一些简单的键值对数据,如用户偏好设置、应用配置等。这种方式非常适合保存少量非敏感数据,并且易于读写。下面我们将深入探讨如何在...

Global site tag (gtag.js) - Google Analytics