客户端自动登录实现

我们在做手机客户端的时候,登录成功了之后,需要把账户信息保存下来。下次打开就没必要再进入登录界面了,而应该实现自动登录,让用户直接进入数据展示主界面。大致思路如下:
1、在登录的模块中,如果登录成功,那么就会有成功后的执行方法,我们在此方法中把账户信息,如userId,userName,passWord通过shareprefrence或者数据库保留到本地。同时,还需要保留一个标志位KEY_SKIP_LOGIN,存一个布尔值,用来判断是否登录成功过,下次登录的时候可判断此标志位决定是否直接进入主界面。

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext());
 sp.edit().putInt(USERID, userId).apply();
        sp.edit().putString(USERNAME, username).apply();
        sp.edit().putString(PASSWORD, password).apply();
        sp.edit().putBoolean(KEY_SKIP_LOGIN_PAGE,true).apply();//把是否自动跳过登录界面设置为true,下次打开应用的时候就不需要再停留在登录界面,而由登录界面直接跳到MainActivity

2、登录成功后,下次打开应用的时候,判断KEY_SKIP_LOGIN_PAGE的值为true,直接从登录界面调到主界面。

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext());
        if (sp.getBoolean(KEY_SKIP_LOGIN_PAGE, false)) {
             Intent intent = new Intent(getContext(), MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getActivity().startActivity(intent);
        }

3、上面两种情况都要进入主界面,进入主界面之后,我们需要从远程服务器获取数据,第一次获取服务器数据的时候我们需要再对账号和密码做一次验证,如果验证失败,那么需要退到登录界面,同时KEY_SKIP_LOGIN_PAGE设置为false;验证成功,那么继续正常显示数据。

 if (isFirstLoad){
            presenter.autoLogin(userName,password);   
            isFirstLoad = false;
        }
showAutoLoginFail() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
        sp.edit().putBoolean(KEY_SKIP_LOGIN_PAGE,false).apply();//这里把自动跳过登录界面的标志位置为false
        Intent intent = new Intent(this, LoginActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        finish();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值