一种基于Android实现自动登录的方法与流程

文档序号:21034843发布日期:2020-06-09 20:22阅读:804来源:国知局
一种基于Android实现自动登录的方法与流程

本发明基于互联网门店系统平台,特别涉及一种基于android实现自动登录的方法。



背景技术:

随着智能手机和各种数码终端的普及,移动互联网已经融入到了我们的生活中,品类繁多的app正在潜移默化地改变着我们的生活方式。

对于消费者而言,app对我们生活的改变已然令我们习以为常,衣食住行、生活娱乐,无所不在。在移动互联网越来越普及的当下,大多数app只是给我们带来了更多的便捷服务和支持,但有些app功能却没有做到尽善尽美,像有些需要登录才能使用的app,如果每次都需要用户输入用户名与密码进行验证,就显得比较烦琐,容易失去用户的耐心,从而导致用户的流失。

本发明针以上问题,在用户第一次登录的过程中,如果通过验证,就将其信息保存到缓存中,下次用户打开app时,直接读取缓存中的用户信息进行远程验证上,通过后跳过登录窗口直接进入主界面,从而解决了用户每次打开app浏览都需要登录验证的问题。



技术实现要素:

本发明解决的技术问题在于提供一种基于android实现自动登录的方法;本发明解决了顾客遗失小票或者忘记小票回到门店索要小票时,门店系统无法重打小票的问题。

本发明解决上述技术问题的技术方案是:

一、创建登录布局文件及activity;二、创建用户实体类,用于数据的转换与存储;三、用户第一次登录时,获得用户名与密码,以及当前的时间,点击登录按钮请求远程服务器进行验证,成功后把用户信息及登录时间保存到缓存中;四、下次用户打开app时先从本地缓存中读取用户信息及登录时间,如果在期限内且用户信息存在,则请求远程服务器验证,通过后跳过登录窗口直接转到主界面。

所述的方法具体包括如下步骤:

步骤一、创建登录布局文件;所述的具体步骤如下:

(1)在项目中的drawable-hdpi文件夹中添加登录所需的素材;

(2)在layout文件中创建activity_login.xml文件;

(3)在布局文件中添加输入用户名与输入密码所需的edittext控件以及登录按钮控件。

步骤二、创建loginactivity文件;所述的具体步骤如下:

(1)在项目中创建loginactivity类继承appcompatactivity;

(2)在androidmanifest.xml清单文件中注册loginactivity,并隐藏菜单栏;

(3)在androidmanifest.xml清单文件中添加网络及存储权限;

(4)在oncreate方法中绑定布局文件,并使用butterknife.inject(this)注册控件。

步骤三、获得用户名与密码,以及当前的时间,点击登录按钮请求远程服务器进行验证;所述验证具体实现如下:

(1)获得用户输入的用户名与密码,对密码使用md5进行加密,然后设值到用户实体类中;

(2)创建okhttpclient工具类,创建post方法,参数有服务器url、map参数集合、回调函数等;

(3)点击登录按钮时将用户实体类以及当前时间设值到map中,然后通过post方法请求远程服务器;

(4)通过上述post方法中回调函数中的onresponse方法获得返回结果,如果response对象不为空,并且状态值200,说明验证通过。

步骤四、成功后把用户信息及登录时间保存到缓存中,具体实现如下:

(1)创建基于sharepreference的工具类sharedprefsutils;

(2)创建setstringpreference方法,参数为字符串型的key与value及及上下文context;

(3)创建preferences对象,然后通过此对象创建editor对象,使用editor的putstring方法设值传入的用户信息与当前时间;

(4)使用editor对象的commit方法提交保存。

步骤五、用户再次打开app时先从本地缓存中读取用户信息及登录时间,所述的获取最主要是通过sharedprefsutils工具类中的getstringpreference方法,输入key值,返回保存时的value值;

步骤六、判断当前登录是否在期限内并且用户信息存在,如果满足,请求远程服务器验证,通过后跳过登录窗口直接转到主界面,否则退回到登录界面,输入用户名密码登录。

本发明的有益效果:在用户第一次登录的过程中,如果通过验证,就将其信息保存到缓存中,下次用户打开app时,直接读取缓存中的用户信息进行远程验证上,通过后跳过登录窗口直接进入主界面,从而实现了快速登录的目的。有效地解决了用户每次打开app浏览都需要登录验证的问题。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明的流程图。

具体实施方式

如图1所示,本发明采用如下步骤:

步骤一、创建登录布局文件;所述的具体步骤如下:

(1)在项目中的drawable-hdpi文件夹中添加登录所需的素材;

(2)在layout文件中创建activity_login.xml文件;

(3)在布局文件中添加输入用户名与输入密码所需的edittext控件以及登录按钮控件。

步骤二、创建loginactivity文件;所述的具体步骤如下:

(1)在项目中创建loginactivity类继承appcompatactivity;

(2)在androidmanifest.xml清单文件中注册loginactivity,并隐藏菜单栏;

(3)在androidmanifest.xml清单文件中添加网络及存储权限;

(4)在oncreate方法中绑定布局文件,并使用butterknife.inject(this)注册控件。

步骤三、获得用户名与密码,以及当前的时间,点击登录按钮请求远程服务器进行验证;所述验证具体实现如下:

(1)获得用户输入的用户名与密码,对密码使用md5进行加密,然后设值到用户实体类中;

(2)创建okhttpclient工具类,创建post方法,参数有服务器url、map参数集合、回调函数等;

(3)点击登录按钮时将用户实体类以及当前时间设值到map中,然后通过post方法请求远程服务器;

(4)通过上述post方法中回调函数中的onresponse方法获得返回结果,如果response对象不为空,并且状态值200,说明验证通过。

步骤四、成功后把用户信息及登录时间保存到缓存中,具体实现如下:

(1)创建基于sharepreference的工具类sharedprefsutils;

(2)创建setstringpreference方法,参数为字符串型的key与value及及上下文context;

(3)创建preferences对象,然后通过此对象创建editor对象,使用editor的putstring方法设值传入的用户信息与当前时间;

(4)使用editor对象的commit方法提交保存。

步骤五、用户再次打开app时先从本地缓存中读取用户信息及登录时间,所述的获取最主要是通过sharedprefsutils工具类中的getstringpreference方法,输入key值,返回保存时的value值;如:

publicstaticstringgetstringpreference(contextcontext,stringkey){

stringvalue=null;

sharedpreferencespreferences=preferencemanager.getdefaultsharedpreferences(context);

if(preferences!=null){

value=preferences.getstring(key,null);

}

returnvalue;

}。

步骤六、判断当前登录是否在期限内并且用户信息存在,如果满足,请求远程服务器验证,通过后跳过登录窗口直接转到主界面,否则退回到登录界面,输入用户名密码登录。如:

privatevoidautologin(){

userentityuser=getuser();

if(user!=null){

stringloginid=user.getcode();

stringpassword=user.getpassword();

mpassword=password;

if(!textutils.isempty(loginid)&&!textutils.isempty(password)){

login(loginid,password);

}else{

gotologinview();

}

}else{

gotologinview();

}

}。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1