我们写APP时经常会遇到保存用户登录信息,那么怎么来保存用户的登录状态呢?
我们可以通过SharedProferences类的getSharedPreferences(String NAME, int MODE)方法来实现对用户登录信息的保存,如:用户名,密码,cookie等。
Android 平台给我们提供了SharedProferences类,这是一个轻量级的储存类,适用于保存一些小数据。SharedProferences具体用法及方法可参见http://www.android.doc.com/reference/android/content/SharedPreferences.html。
这里我主要说一下getSharedPreferences(String NAME, int MODE)方法,
主要功能:
检索Preference文件的内容和文件名,返回一个SharedPreferences,通过它可以检索和修改它的数值。只有SharedPreferences对象的一个实例返回给调用者的任何为相同的名字,这意味着他们将尽快为他们作出看到对方的修改。
参数:
第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。
第二个参数指定文件的操作模式,共有四种操作模式:
1.MODE_PRIVATE
默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖源文件的内容。
2.MODE_WORLD_READABLE
表示当前文件可被其他应用读取
3.MODE_WORLD_WRITEABLE
表示当前应用可被其他应用写入
4.MODE_MULTI_PROCESS
总是在应用程序目标定位(Android 2.3的)及以下,并默认关闭在以后的版本。
保存信息:
SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("account", "用户名");
editor.putInt("password", 123456);
editor.commit();//提交修改
生成.xml文件
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="account">53663698</string>
<string name="password">123456</string>
</map>
获取信息:
SharedPreferences preferences = getSharedPreferences("userInfo",
Activity.MODE_PRIVATE);
String account = preferences.getString("account", "");