一般的涉及到注册、登陆的App都会为了用户体验,做一个自动登录,就是当用户第一次登录成功后,下一次在进入App不需要再次输入账号密码。总结了下,我所用到过的自动登录的形式。
1、通过SharedPreferences
用SharedPreferences将用户名,密码保存在本地文件中。
// 记住用户名、密码、 SharedPreferences.Editor editor = sp.edit(); String username = et_login_username.getText().toString(); String password = et_login_password.getText().toString(); editor.putString("USER_NAME", username); editor.putString("PASSWORD", password); editor.commit();
在下次进入App的时候,将用户名,密码读出来
//读取SharedPreferences里面的用户名,密码 String username = sp.getString("USER_NAME", null); String password = sp.getString("PASSWORD", null);
拿去登录(一般情况下,拿着用户名,密码去访问服务器,正确则跳转下一个页面)
这里我只是展示了如何写入,和读取,像自动登录那些逻辑,判断是否有数据,如果有就读取到用户名,密码,请求服务器。这些我都没有写。
2、通过SQLite
将用户名,密码保存在本地数据库SQLite中。
username = et_Slogin_username.getText().toString(); password = et_Slogin_password.getText().toString(); SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL("insert into tab_userinfo (username,password,islogin) " + "values(?,?,?)", new Object[]{username, password,"true"});
在下次打开App的时候读取出来
SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = db.query("tab_userinfo", new String[]{"username", "password", "islogin"}, "islogin=?", new String[]{"true"}, null, null, null); while (cursor.moveToLast()) { name = cursor.getString(cursor.getColumnIndex("username")); pwd = cursor.getString(cursor.getColumnIndex("password")); Log.e("111111", "initData: "+name+" 00 "+pwd); break; }
请求服务器,跳转下一个页面实现自动登录。
我这里就大概说下怎样写入,读取,其他一些逻辑,小问题的处理还得召唤师,哦不,工程师自己来思考啊。
关于手势登录,请关注我下一篇博文吧。
下面附上源码地址:http://download.csdn.net/detail/p940226/9900542
不清楚的看源码把,博文中我只是大概走了下写入,读取的流程,其他的我感觉都没什么好值得写的。所以。。