很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package
name>/shared_prefs目录下:
生成的sharedData.xml文件内容如下:
因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,
Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。
访问SharedPreferences中的数据代码如下:
读、写其他应用的SharedPreferences
如果访问其他应用中的Preference,前提条件是:该preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。
如:有个<package name>为com.geniusxiaoyu.sharedpreferences的应用使用下面语句创建了preference。
getSharedPreferences("sharedData", Context.MODE_WORLD_READABLE);
其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference :
上面程序中com.geniusxiaoyu.sharedpreferences就是其他程序的包名--实际上Android系统中就是用应用程序的包名来作为程序的标识的。
如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
File xmlFile = new File(“/data/data/<package name>/shared_prefs/sharedData.xml”);//<package name>应替换成应用的包名
下面列出相关完整代码:
布局文件main.xml
数据文件strings.xml
MainActivity.java
分享到:
相关推荐
在数据存储方面,笔记涵盖了SQLite数据库的使用、SharedPreferences配置文件的读写,以及如何利用ContentProvider进行数据共享。这些知识可以帮助你有效地管理和持久化应用的数据。 此外,笔记还涉及到了网络编程,...
这篇Android学习笔记主要涵盖了从第五章到第十三章的内容,是Android开发者或对Android系统感兴趣的初学者的重要参考资料。笔记详细解读了Android应用开发的核心概念和技术,旨在帮助读者深入理解并掌握Android开发...
8. **数据存储**:Android提供了多种数据存储方式,包括SharedPreferences用于轻量级数据存储,SQLite数据库用于结构化的数据管理,以及ContentProvider用于共享数据。 9. **异步编程**:Android中的AsyncTask、...
4. **数据存储**:在Android开发中,数据存储是一个重要的话题。课程可能会涉及SharedPreferences、SQLite数据库、文件存储以及ContentProvider的使用。 5. **网络编程**:讲解如何在Android应用中实现网络请求,如...
《Android学习笔记》 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的API和工具,使得创建各种应用程序变得可能。本压缩包文件包含了一位学习者从第一天到第五天,以及一个特定项目...
在实际开发中,对于非持久化的数据,考虑使用`SharedPreferences`、`Intent`或`Bundle`等方式传递;对于需要长期存在的数据,可使用数据库或文件存储。同时,如果多个Activity频繁修改`Application`中的数据,要考虑...
根据提供的文件内容,这是一份详细的Android学习笔记,涵盖了从基础入门到高级特性的各个知识点。以下是从这些内容中提取的知识点: 1. Android入门基础: - 建立第一个App:介绍如何创建Android项目和执行程序。 ...
在Android开发领域,初学者经常会遇到许多基础知识的学习挑战,如对话框(Dialog)的使用、数据存储的方法、动画的实现以及广播接收器(Broadcast Receiver)的应用。这篇笔记将深入讲解这些核心概念,帮助初学者快速...
6. **数据持久化**:Android提供了多种存储数据的方式,如SharedPreferences用于轻量级的键值对存储,SQLite数据库用于结构化的数据存储,以及文件系统等。学习如何根据需求选择合适的数据存储方式是必要的。 7. **...
2. 保存activity状态:当Activity被系统销毁并需要恢复时,可以使用`onSaveInstanceState()`来保存临时数据,而持久化数据应存储在`SharedPreferences`, 文件系统或数据库中。 3. 处理配置文件的改变:当设备配置如...
这篇名为“Android学习笔记 - Preference的使用”的博客文章可能涵盖了以下关键知识点: 1. **Preference基础知识**: - `Preference` 类是Android中的一个抽象类,它是所有设置项的基础。`CheckBoxPreference`、`...
Android学习笔记(七)——数据存储(共享参数SharedPreferences) Android学习笔记(八)——数据存储(SD卡文件操作) Android学习笔记(九)——网络技术 Android学习笔记(十)——实现新闻列表案例 Android学习...
Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...
《黑马程序员Android学习笔记》是一份专为初学者设计的详尽教程,旨在帮助那些希望踏入安卓开发领域的人员快速掌握核心知识。这份笔记涵盖了从基础到进阶的多个主题,帮助学习者系统地理解Android应用开发的过程。 ...
【Mono for Android学习笔记全套】是一份详尽的资源,旨在帮助开发者掌握使用Mono和C#进行Android应用开发的技术。Mono是.NET框架的一个开源实现,它使得C#开发者能够在多种平台上,包括Android,编写和运行应用程序...
此外,可能会涉及到数据存储,如SQLite数据库的使用,以及SharedPreferences,用于保存轻量级的数据。 "Linux 6410"标签表明,这些笔记可能也包含关于在基于ARM架构的Samsung S5PV210(也称为6410)处理器上运行...
6. **数据存储**:讲解SharedPreferences、SQLite数据库、文件存储以及ContentProvider的使用方法,以及何时选择合适的存储方式。 7. **网络编程**:介绍如何使用HttpURLConnection、OkHttp、Retrofit等库进行网络...
在Android开发过程中,开发者需要掌握一系列的技术点,包括但不限于组件使用、UI设计、网络通信、数据存储、性能优化等。"Android代码-android-note"这个压缩包文件很可能包含了开发者在实践这些技术时积累的笔记和...
教程中将教你如何读写文件,管理内部存储和外部存储空间,以及如何使用SharedPreferences进行轻量级的数据持久化。 模拟器应用部分,《新版Android开发教程+笔记五--模拟器、应用1、2.pdf》提供了关于如何在Android...
Android学习笔记是一个全面且实用的学习资源,旨在帮助开发者或初学者深入理解Android操作系统以及如何在该平台上构建应用程序。这份笔记涵盖了Android开发的各个方面,包括基础知识、界面设计、数据存储、网络通信...