android 自动登录机制,Android登录记住密码以及自动登录的实现
记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等。
本文章只针对本人毕设的登录页面中的记住密码以及自动登录做出一些简单的解释。如果需要了解登录页面实现的完整代码请点击下面链接。
Android登录页面实现
记住密码和自动登录使用复选框来实现,并设置了全局变量接收当前记住密码以及自动登录的状态。
//复选框
private CheckBox mRemenber;//记住密码
private boolean mPasswordFlag = false;//记住密码标志
private CheckBox mAutoLogin;//自动登录
private boolean mAutoLoginFlag = false;//自动登录标志
使用SharedPreferences时在页面初始化的时候实例,也就是在onCreate()中实现,在实例该类时会在本地创建一个文件,需要给该文件命名。下面是初始化页面时从已存在的文件中读取信息。
SharedPreferences sharedPreferences = getSharedPreferences("busApp", MODE_PRIVATE);
//如果不为空
if (sharedPreferences != null) {
String userName = sharedPreferences.getString("username", "");
userPassword = sharedPreferences.getString("password", "");
mPasswordFlag = sharedPreferences.getBoolean("remenber", false);
mAutoLoginFlag = sharedPreferences.getBoolean("auto", false);
mPhoneText.setText(userName);
}
//确定为true获取 记住密码,打钩
if (mPasswordFlag) {
mRemenber.setChecked(true);
mPasswordText.setText(userPassword);
}
//选择了自动登录后直接登录
if (mAutoLoginFlag){
mAutoLogin.setChecked(true);
String username = mPhoneText.getText().toString();
String password = mPasswordText.getText().toString();
login(username,password);
}
//注册监听
mRemenber.setOnClickListener(mListener);
mRemenber.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//记住密码
//如果是选中记住密码,取消记住密码、自动登录
if (!isChecked){
mAutoLogin.setChecked(false);
//清空密码输入框
mPasswordText.setText("");
}
}
});
在登录时将登录页面的所有信息存放到存储文件中。
//1 创建 SharePreferences 对象
String username = mPhoneText.getText().toString();
String password = mPasswordText.getText().toString();
Log.d("输入框获取的密码", "onClick: " + password);
//没有记住密码时 MD5密码加密
SharedPreferences sharedPreferences = getSharedPreferences("busApp", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
//2 创建Editor对象,写入值
editor.putString("username", username);
if (mRemenber.isChecked()) {
if(!mPasswordFlag){
try {
password = MD5Utils.getMD5(password);
Log.d("记住密码选中且false加密后密码", "onClick: " + password);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
mPasswordFlag = true;
}
editor.putBoolean("remenber", mPasswordFlag);
editor.putString("password", password);
Log.d("记住密码选中写入的密码", "onClick: " + password);
//选中自动登录
if (mAutoLogin.isChecked()){
mAutoLoginFlag = true;
}else{
mAutoLoginFlag = false;
}
editor.putBoolean("auto", mAutoLoginFlag);
} else {
if(!mPasswordFlag){
try {
password = MD5Utils.getMD5(password);
Log.d("记住密码未选中且false加密后密码", "onClick: " + password);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
//取消自动登录和记住密码,清空密码
mPasswordFlag = false;
mAutoLoginFlag = false;
editor.putString("password", "");
editor.putBoolean("remenber", mPasswordFlag);
editor.putBoolean("auto", mAutoLoginFlag);
}
//3 提交
editor.commit();
在执行登录之前一定要提交,commit()会将内存中的数据存储到硬盘上
android 自动登录机制,Android登录记住密码以及自动登录的实现相关推荐
- Android登录记住密码以及自动登录的实现
记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...
- Android之记住密码与自动登陆实现
本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...
- EChat(简易聊天项目)六、实现记住密码和自动登录
利用SharedPreferences登录界面记住密码和自动登录 ①修改login_layout.xml文件,增加如下代码,即添加2个勾选框 <LinearLayoutandroid:orien ...
- 引用借以记录借鉴 实现记住密码和自动登录功能
WEB页面代码: <form id="Form1" runat="server"><input type="hidden" ...
- 业务系统实现记住密码和自动登录功能
业务系统实现记住密码和自动登录功能 公司的业务系统本来是受域控的,用户不需要登录可以直接访问系统.当然,虽然不用人工登录,系统本身会读取电脑的用户名为登录标识,对系统操作权限和记录也是以电脑名.近段时 ...
- 基于localStorge开发登录模块的记住密码与自动登录
前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...
- Winform 实现记住密码和自动登录
一般的软件都有记住密码和自动登录功能,所以今天说一种winform的记住方式. 效果: 关闭软件,再次打开时,密码已经填写好了,不需要输入. 点击登录也能校验成功,完美实现登录记住账号密码. 自动登录 ...
- 记住密码 和 自动登录功能(登录)
前台页面: <body><form id="Form1" runat="server"><input type="hid ...
- Cookie实现记住密码及自动登录
最近对华丹快速开发平台进行升级,需要对实现记住密码以及自动登录功能,下面主要说一下如何用cookie实现此功能. 一.什么是cookie? Cookie,有时也用其复数形式Cookies.是保存在客户 ...
最新文章
- 概率模型与条件随机场
- Spring Boot 系列(八)@ControllerAdvice 拦截异常并统一处理
- 将近一半的用户希望能够在两秒内或者更短的时间内打开网站
- 数据中心进水了怎么办?数据中心如何防洪?
- C++描述杭电OJ 2011.多项式求和 ||
- 设置VS2017背景图片
- php怎么使得字体滚动,滚动文字+字体特效代码(全集)
- 《并行计算的编程模型》一3.1 引言
- docker 进入容器
- 东南大学成贤学院计算机报名,2019上半年东南大学成贤学院全国计算机等级考试预报名通知...
- JAVA获取文件本身所在的磁盘位置
- C# 将数据导出到Excel汇总(转)
- CCS6的graph变灰解决办法
- 北京科技大学计算机博士统考,北京科技大学计算机与通信工程学院2016年博士录取方案...
- PHP在线讨饭源码+支付宝当面付DEMO+自动在线要饭源码+安装教程
- 服务器安全,服务器密码遭篡改
- 【历史上的今天】9 月 21 日:世界上第一部商用移动电话;苹果发布 iPhone 5 ;Mini-SATA 研制成功
- 挂机机器人虚拟服务器,[机制|聊天]BotMaker —— 在你的服务器轻松创建机器人[1.8-1.13.2]...
- python中show函数_Pycharm(Python)下imshow函数显示问题的解决方法
- 美国高通公司开发出了新的指纹识别技术
热门文章
- 第十五届全国大学生智能车竞赛车模技术检查表格
- python表达式3and not5的值_太原理工大学python考试题总结
- centos oracle 服务自动启动,CentOS下配置Oracle 11gR2为系统服务自动启动
- linux下查看vnc端口_怎样查vnc端口,Linux下根据进程名怎样查端口
- python pexpect telnet_使用python的pexpect模块,实现远程免密登录的示例
- python怎么后退_使python迭代器向后退?
- vxworks linux 多线程api,vxWorks多任务编程初探(转)
- FPGA逻辑设计回顾(12)RAM以及ROM的RTL设计及其验证
- 半导体基础知识(2):PN结二极管和二极管特性
- HDLBits 系列(3)Priority Encoder(Case/Casez)