admin管理员组文章数量:1616677
本发明基于互联网门店系统平台,特别涉及一种基于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();
}
}。
版权声明:本文标题:android 手机自动登录,一种基于Android实现自动登录的方法与流程 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728745835a1171285.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论