不要滥用SharedPreference】的更多相关文章

SharedPreference是Android上一种非常易用的轻量级存储方式,由于其API及其友好,得到了很多很多开发者的青睐.但是,SharedPreference并不是万能的,如果把它用在不合适的使用场景,那么将会带来灾难性的后果 存储超大的value 第一次看到下面这个sp的时候,我的内心是崩溃的: 一个默认的sp有90K,当我打开它的时候,我都快哭了:除了零零星星的几个很小的key之外,存储了一个炒鸡大的key,这一个key至少占了其中的89K.知道这是什么概念吗? 在小米1S这种手机…
SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getSharedPreferences() Activity 的 getPreferences() PreferenceManager 的 getDefaultSharedpreferences() 获取数据 sharedPrefs.getXXX()方法,如getInt(),getString()等 储存数据…
float设计初衷就是为了实现文字环绕效果 原本页面流布局显示如上图所示,运用了float属性后就显示为如下图所示,这就是浮动的设计初衷 float的一些特性:包裹性.破坏性. 包裹的特性其实主要有三个表现:收缩.坚挺.隔绝. float破坏性主要表现在使父容器塌陷(浮动使得父容器塌陷是标准而非bug,否则如果不让父窗口塌陷怎么实现文字环境效果) 浮动的破坏性只是单纯的为了实现文字环绕效果 BFC(block format context)块级格式化上下文 如何解决浮动造成的父容器塌陷? 也就是…
很久以前就接触过sharedPreference这个android中的存储介质.但是一直没有实际使用过,今天在看之前做的“民用机型大全”的app时,突然想到可以使用sharedPreference类来改进这个app中的一个缺陷. 此前,我先介绍sharedPreference的使用.Android数据总共有四种存储的方式 一.SharePreference 二.SQLite 三.File 四.ContentProvider SharedPreference类是一个轻量级的存储类,特别适合保存软件…
众所周知,javascript中有两种for循环,一种是: var a=['this','is','a','article'], i, len; for( i = 0,len = a.length;i < len; i++ ){ console.log(a[i]); } 另一种是for in循环,形如:for (item in arr){...} for in 循环是用在遍历一个Object的key的时候可用到的,而第一种for循环是专门用来遍历数组里面的元素,如果滥用for in循环将会导致一…
在前面文章中,为了使数据回显,使用的技术思路是,首先,将数据持久化写到ROM或者SDCard中,其中name和password以":"分隔;然后,将数据记取出来,再用split方法将数据切割,分割后的数据再set到输入框中.整个过程可谓是相当麻烦,一不小心就会报空指针的错误,而且很容易忘记写参数.下面将学习一个叫SharedPreference东西.SharedPreference主要用来保存参数. 1.效果: 2.实现代码 package com.amos.sharedprefere…
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3405308.html 有Android开发经验的朋友对SharedPreference的用法应该比较亲切的吧,它一般用来保存和读取用户的设置参数,比如保存用户名.加密后的登录密码,是否选择了自动登录,应用选择了哪一套主题皮肤等用户配置信息,使用也非常简单,put/get就能保存/读取这个配置文件,这个文件是用xml形式保存在应用的目录下面 在ios中,也有这么…
在<Android 在内部存储读写文件>一文中,谈到了登录用户名和密码的方法,通过读取内存文件来实现,但是会出现问题,因为登录名和密码的形式通过username##password的形式,读取的时候以##为分割线,但是一旦用户名中存在##就会出现问题,本文使用SharedPreference来解决这个问题 1. 定义布局使用之前的布局2. 把组件的状态用SharedPreference保存起来 * 往SharedPreference里写数据 //拿到一个SharedPreference对象 S…
SharedPreference文件保存格式为xml文件. 一.SharedPreference写入 SharedPreferences sharedPreferences = context.getSharedPreferences("info", Context.MODE_APPEND); Editor edit = sharedPreferences.edit(); edit.putString("rocky", "rocky");edit…
见:[C解毒]滥用变量…
SharedPreference存储数据和文件存储更加方便的一点是可以按照一定的数据类型进行存储,同时取数据时也能够获取到相应的数据类型.它是按照map的方式来存储和读取数据的. MainActivity.java package org.elvalad.sharedpreferencetest; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; imp…
这两个方法的区别在于: 1. apply没有返回值而commit返回boolean表明修改是否提交成功 2. apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率.而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率. 3. apply方法不会提示任何失败的提示. 由…
2013-12-28 18:03:40 要读写其他应用的SharedPreference,前提是创建该SharedPreference的程序指定相应的可读或可写的权限, 如下: private void accessSharedPreference() { Context useCount = null; try { // 获取其他程序所对应的Context useCount = createPackageContext("org.crazyit.io", Context.CONTEX…
写://添加一个SharedPreference并传入数据SharedPreference sharedPreferences = getSharedPreferences("share_doc", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("Input", "传入的数据"); editor…
这篇文章算是很基础的了.旨在介绍如何保证页面代码的整洁.以维护性.使用有语义的页面标签,减少标签的滥用. 1. 移除不必要的<div>标签 嵌套在<form><ul>外面的标签没有必要 例子: 2. 使用有语义的标记 <h1><ul><p>等标签,替代<div>,即便样式表丢失,仍然保证页面的可读性. 3. 尽量少的使用<div>标签 4. 代码缩进格式 5. 在</div>结尾处加上这个<d…
Android不同应用之间数据的共享有许多方式,但是我觉得还是使用sharedPreference比较简单和轻量级.如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现: try { AContext =createPackageContext(A_PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { Log.e(TAG, "find package e…
要将数据持久化到手机移动设备有多种方法,其中有一种是通过sharedpreference来实现. 首先将sharedpreference初始, private SharedPreferences sp; // 初始化 sharedpreference sp = this.getSharedPreferences("filename", Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE); 初始化以后,在事件方法之中,获取s…
定义: void apply boolean commit; 相同:二者都是提交修改的数据 手机里的文件存放在/data/data/<package_name>/shared_prefs 目录下 不同: 1.apply没有返回值  并且api 9开始支持 软件在使用的时候,需要添加 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { //api 9开始引入apply方法来决定是否引用apply} commit返回…
android 数据存储 作为一个完整的应用程序,数据存储必不可少.android 提供了五种不同的数据存储方式:SharedPreferences.SQLite.ContentProvider.文件存储.网络存储. 1.SharedPreference 用来存储简单的配置信息,如用户名/密码,以键值对的方式存储,存储位置在/data/data/<包名>/shared_prefs目录下SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现.…
xml  与之前的登陆案例相同 java代码: package com.itheima.login; import java.util.Map; import com.itheima.login.util.UserInfoUtil; import com.itheima.login_shared.R; import android.app.Activity; import android.content.Context; import android.os.Bundle; import andr…
参考:http://www.cnblogs.com/friends-wf/p/4835818.html 应用开发过程中,数据存储几乎是肯定会遇到的问题,根据要存储的数据类型和数量,可以选择合适的存储方式. Android提供了4种存储方式,目前为止我只用过Sqlite数据库和SharedPreference,这里对SharedPreference 存储方式进行总结,以便以后使用. SharedPreferences主要用于存放软件的配置参数等信息,是存取和修改软件配置参数数据的接口,由getSh…
我们在安卓开发的时候不免需要记录用户键入的一些信息,比如账号和密码,用户使用软件的次数,上次打开软件的时间等等,为了保存这些配置,我们可以使用SharedPreference类保存他们. //使用SharedPreference进行保存软件的配置信息 SharedPreferences sharedPreferences = this.getSharedPreferences("config", Context.MODE_PRIVATE); SharedPreferences.Edit…
相同点: 1.二者都可提交preference的修改数据 2.二者都是原子操作 区别: 1.apply没有返回值而commit返回boolean表明修改是否提交成功 2.apply是将修改数据原子提交到内存,而后异步真正提交到硬件磁盘:而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率.而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多…
public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //通过this.getSharedPreferences(保存的文件名字,以及访问的模式) final SharedPreferences shared=this.getSh…
1. SharedPreference SharedPreference可以很容易的保存key-value对,通常用于保存配置信息.保存的步骤 1. 获得SharedPreferences对象 (最后一个参数指定了文件的建立模式,设置文件属性) SharedPreferences mySharedPreference = getSharedPreferences(PREFERENCE_NAME, Activity.MODE_PRIVATE); 2. 获得SharedPreferences.Edi…
SharedPreference 是一种简单的.轻量级的名称/值对(NVP)机制,用于保存原始应用程序数据. 使用SharedPreferences类可以创建名称/值对的命名映射,他们可以在会话之间持久化,并在同一个应用程序沙箱中运行的程序组件之间共享. 为了创建或修改一个SharedPreference,可以调用应用程序上下文的getSharedPreferences,并传入要修改的SharedPreference的名称.例如: SharedPreferences sp = getShared…
Android提供多种方式保存应用数据,其中一种方式是SharedPreferences,使用键值对保存私有基本的数据.所有的逻辑仅基于以下三个类: SharedPreferences SharedPreferences.Editor SharedPreferences.OnSharedPreferenceChangeListener SharedPreference SharedPreference在这三个类是最重要的,负责获取(解析)存储数据.提供获取对象的编辑接口,在OnSharedPre…
1.sharedPreference保存数据 package com.example.login.service; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStreamReader; imp…
阅读目录 float设计初衷就是为了实现文字环绕效果 如何解决浮动造成的父容器塌陷? 兼容各浏览器清除浮动的通用方式 滥用浮动 运用浮动的一些特性 浮动与布局 浮动与单侧固定布局 浮动与智能自适应的流体布局 让IE7飙泪的浮动问题 包含clear的浮动元素包裹不正确 浮动元素倒数2个莫名垂直间距bug 浮动元素倒数2个浮动最后一个字符重复bug 浮动元素与文本不在同一行的问题 如何使用float不出现上述所述怪异现象 回到顶部 float设计初衷就是为了实现文字环绕效果 原本页面流布局显示如上图…
项目中用到的数据存储方式: 1.这个项目里的“个人标签“.”个性签名“页面的文字存储——sharedPreference:我们项目中用到的Preference来保存用户编辑的标签.签名内容,并支持用户的更新修改.首先逻辑是:在个人标签.个性签名里进行内容的编辑,然后存到同一个preference文件,不过是以不同的键值对进行存储.然后在userinfo界面,更新显示,把preference里的键值对取出来加载到控件上显示,这里注意activity的生命周期,显示部分的代码不是在oncreat()…