记住密码自动登陆的实现和退出时的登陆数据清空

在android开发的时候涉及到自动登录方面网上有很多相关的代码,但是在实际应用中常常实现了自动登录功能后,在退出登陆返回登陆界面后又被强制进入主界面,没有清空之前的登录数据。

(相关的字段根据具体情况更改)

                Boolean value = preferences.getBoolean("loginischecked", false);
		// 自动登录
		if (preferences.getBoolean("loginischecked", false)) {
			login_btn.setChecked(value);
			if (!TextUtils.isEmpty(appUserName.getText().toString())
					&& !TextUtils.isEmpty(appUserName.getText().toString())) {
				userNameStr = appUserName.getText().toString();
				userPassStr = appUserPass.getText().toString();
				relative_layout.setVisibility(View.VISIBLE);
				loading.startAnimation(animation); // 向服务端请求数据
				ApplicationData.getExecutorService().submit(loginRun);
			}
		} else {
			login_btn.setChecked(false);
		}
在点击登录按钮需设置自动登录数据存储以便下次登录

private SharedPreferences preferences;
public static SharedPreferences.Editor editor;

preferences = getSharedPreferences("config", MODE_PRIVATE);

// 记住密码
		if (password_btn.isChecked()) {
			editor = preferences.edit();
			editor.putString("username", userNameStr);
			editor.putString("userpassword", userPassStr);
			editor.putBoolean("ischecked", true);
			editor.putBoolean("loginischecked", true);

		} else {
			editor = preferences.edit();
			editor.putString("username", "");
			editor.putString("userpassword", "");
			editor.putBoolean("ischecked", false);
			editor.putBoolean("loginischecked", false);
		}

		if (login_btn.isChecked()) {
			editor.putBoolean("loginischecked", true);
		} else {
			editor.putBoolean("loginischecked", false);
		}

		editor.commit();

在退出事件时需要清空数据以解决重复登录的问题

添加方法

private void clear() {
			// TODO Auto-generated method stub
			preferences = getSharedPreferences("config", MODE_PRIVATE);
			editor = preferences.edit();
			editor.putString("username", "");
			editor.putString("userpassword", "");
			editor.putBoolean("ischecked", false);
			editor.putBoolean("loginischecked", false);
			editor.commit();
		}
这样一个完整的记住密码自动登录及退出循环就结束了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值