Android sharedPreferences基本用法和用于两个应用之间共享数据
来源:互联网 发布:淘宝免单红包怎么抽取 编辑:程序博客网 时间:2024/06/02 19:08
本文为网络资料整理,参考文章:
http://blog.csdn.net/jdsjlzx/article/details/19168643
http://www.tuicool.com/articles/Ery6Zr
一.存储方式:
SharePreferences是使用键值对的方式来存储数据的,也就是保存数据的时候需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。而且SharePreferences支持多种不同的数据类型存储,如整形,字符串等
二..获得sharedPreferences对象:
1.Context类中的getSharePreferences()方法:该方法接收2个参数,一个参数用于指定SharePreferences文件的名称,如果指定的文件不存在则会创建一个,SharePreferences文件都是存放在/data/data/<packagename>/shared_prefs/目录下的。第二个参数用于指定操作模式,主要有2种模式可选,MODE_PRIVATE和MODE_MULTI_PROCESS。MODE_PRIVATE仍然是默认的操作模式,和直接传入0效果是相同的,表示只有当前的应用程序才可以对这个 SharePreferences文件进行读写。MODE_MULTI_PROCESS则一般用于会有多个进程中对同一个 SharePreferences文件进行读写的情况。
2.Activity类中的getPreferences()方法:这个方法和Context中的get SharePreferences()方法很类似,不过只接收一个操作模式参数,因为使用这个方法时会自动将当前活动的类名作为SharePreferences文件名。
3.PreferenceManager类中的getDefaultSharedPreferences()方法:这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharePreferences文件。
三.存取
//声明 初始化private SharedPreferences sp;private SharedPreferences.Editor editor;//MODE还有其它模式
public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE;//文件为mySp 存放在/data/data/<packagename>/shared_prefs/目录下的sp=getSharedPreferences("mySp", MODE);editor=sp.edit();//存 还有一些其它类型editor.putString("content","");editor.commit();//取String content=sp.getString("content","");四.两个应用之间共享数据//提供方应用public class MainActivity extends ActionBarActivity implements View.OnClickListener{ private SharedPreferences sp; private SharedPreferences.Editor editor; private TextView tv_content; private Button btn_write,btn_clear; public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sp=getSharedPreferences("mySp", MODE); editor=sp.edit(); tv_content= (TextView) findViewById(R.id.tv_content); btn_write= (Button) findViewById(R.id.btn_write); btn_write.setOnClickListener(this); btn_clear= (Button) findViewById(R.id.btn_clear); btn_clear.setOnClickListener(this); String content=sp.getString("content",""); tv_content.setText(content); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_write: editor.putString("content",getString(R.string.content)); editor.commit(); String content=sp.getString("content",""); tv_content.setText(content); break; case R.id.btn_clear: editor.putString("content",""); editor.commit(); String content2=sp.getString("content",""); tv_content.setText(content2); break; default: break; } }}//接收方应用public class MainActivity extends ActionBarActivity { private TextView tv_content; private SharedPreferences sp; //此为提供方的包名 private static String PREFERENCE_PACKAGE="com.example.yu.sharepreferencedemo1"; public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE; Context c; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { c=this.createPackageContext(PREFERENCE_PACKAGE, Context.CONTEXT_IGNORE_SECURITY); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } sp=c.getSharedPreferences("mySp",MODE); tv_content= (TextView) findViewById(R.id.tv_content); String content=sp.getString("content",""); tv_content.setText(content); }}
- Android sharedPreferences基本用法和用于两个应用之间共享数据
- android 利用SharedPreferences 在不同应用之间共享数据
- android共享数据之SharedPreferences-组建间的数据共享和应用间的数据共享
- Android开发,共享数据SharedPreferences的使用,用于存储数据和状态的方法
- android 两个apk之间恭喜数据SharedPreferences
- Android 跨应用共享数据01-SharedPreferences
- Android中不同应用间实现SharedPreferences数据共享
- Android应用之间的数据共享
- SharedPreferences储存数据基本用法
- SharedPreferences多个程序之间共享数据
- SharedPreferences多个程序之间共享数据
- sharedPreferences不同activity之间的数据共享
- 程序之间共享数据SharedPreferences(一)
- 程序之间共享数据SharedPreferences(二)--sharedUserId
- [一问一答][Android] 如何在两个Activity之间传递(共享)数据
- SharedPreferences之不同应用的数据共享
- Android数据存储--SharedPreferences--共享数据存储
- Android Preference的使用总结(很全很详细)以及SharedPreferences多个程序之间共享数据
- hibernate使用小技巧
- Moto360,Android Wear 手表端的应用的卸载
- Android Fragment 真正的完全解析(上)
- Visual Tracking via Adaptive Structural Local Sparse Appearance Model
- Jmeter常见问题
- Android sharedPreferences基本用法和用于两个应用之间共享数据
- Linux C获取PCI设备名和厂商名
- bootStrap ace tree例子 JAVA版本
- genymotion不能上网的问题
- ExpandableTextView可下拉扩展的TextView
- RDLC报表:每页显示N条记录
- 看图识“字”(5)-饼分图使数据变为面积
- 计算机基础知识
- html 关键词区分