根据Sai Geetha M N的Shared Preferences | Android Developer Tutorial (Part 13),
Many applications may provide a way to capture user preferences on the
settings of a specific application or an activity. For supporting
this, Android provides a simple set of APIs.
Preferences are typically name value pairs. They can be stored as
“Shared Preferences” across various activities in an application (note
currently it cannot be shared across processes). Or it can be
something that needs to be stored specific to an activity.
>共享首选项:共享首选项可以由应用程序中的所有组件(活动,服务等)使用.
>活动处理的首选项:这些首选项只能在活动中使用,而不能被应用程序的其他组件使用.
共享首选项:
共享首选项通过Context类的getSharedPreferences方法进行管理.首选项存储在默认文件(1)中,或者您可以指定用于引用首选项的文件名(2).
(1)指定文件名时如何获取实例
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE是首选项的操作模式.这是默认模式,表示创建的文件将仅由调用应用程序访问.支持的其他两种模式是MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE.在MODE_WORLD_READABLE中,其他应用程序可以读取创建的文件,但不能对其进行修改.对于MODE_WORLD_WRITEABLE,其他应用程序也对创建的文件具有写权限.
(2)建议的方式是使用默认模式,而不指定文件名
SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);
最后,一旦有了首选项实例,就可以从首选项中检索存储的值:
int storedPreference = preferences.getInt("storedInt", 0);
要将值存储在首选项文件中,必须使用SharedPreference.Editor对象.编辑器是SharedPreference类的嵌套接口.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
编辑器还支持remove()和clear()之类的方法,以从文件中删除首选项值.
活动偏好设置:
共享的首选项可以由其他应用程序组件使用.但是,如果您不需要与其他组件共享首选项,并且想要拥有活动私有首选项.您可以借助活动的getPreferences()方法来实现. getPreference方法将getSharedPreferences()方法与活动类的名称一起用作首选项文件名.
以下是获取首选项的代码
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
存储值的代码也与共享首选项的情况相同.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
您还可以使用其他方法,例如将活动状态存储在数据库中.注意Android还包含一个名为android.preference的软件包.程序包定义用于实现应用程序首选项UI的类.
要查看更多示例,请查看开发人员网站上的Android Data Storage帖子.