今天完成了注册登录案例
利用短信登录,并且做个标记存放在sharedpreference中,然后下次再进入软件时,会利用它来判断是否已经登录,
若登录,则直接进入首页,若没有登录跳转到登录页面
用时:7个多小时
效果:
遇到的问题:
1.短信验证实现之后,我想把手机号和密码添加到SQLLite数据库中以便判断,但是当我在用DBOpenHelper时,发现我添加不到里边
我当时的猜想就是,是不是我短信验证和存储密码不能一起使用,短信验证功能会报错。后来我暂时把存储到数据库的功能注释了,短信验证就可以了
但是这也不能吧,我就不信,再上网搜,没找到,那就是没有这块的问题呗。
是我自己写错了肯定,我就开始找错误,从onCreate函数开始,就是在这发现了错误
我少了这句:mDBOpenHelper = new DBOpenHelper(this); 来获取这个DBOpenHelper的类
这可是个致命错误啊,当我加上之后,再打开添加数据库功能,结果就可以了
到这时,经历了一晚上的折腾,终于找到了问题所在
2.如何能够实现用户第二次登录,能够不再用登录,直接进入主页面(除非用户退出登录,这时才回跳到登录页)
我上网查了一下,大致结果如下:
根据你的需求需要三步:
(1).第一步就是你创建个class类继承自Application,作为你app的整个应用层,在里面写一个或几个变量,根据你的需求写,如果你的用户登录状态有token,
你就写一个变量保存token,在判断是否登录的时候直接判断token是否为空就行,如果没有你要写一个能判断用户登录状态的参数的变量,ok,这是判断用户是否登录的
(2).第二步就是上面同志们所说的保存登录状态的,你就保存在SharedPreference里面或者你保存在java提供的Peroperty里面,都是键值对的存储,把一个或几个用来判断用户登录状态的参数写进去,
只要你的app不卸载和用户不在设置里面清楚你的app的数据他会一直存在,ok,这就是实现保存用户登录状态的
(3).第三步就是用户在打开你的app的时候,首先执行第一步的继承与application的类,你在这个类里面的oncreate方法中初始化用户登录信息,具体就是你从SharedPreference中取出你的用户信息
(一般会保存用户对象的json字符串信息),并将判断用户登录状态的参数赋值给该类里面的你定义的变量,
ok,这就是实现每次用户打开app,只要是没登录你的第一步的变量就是空的,登陆后变量就是有值得,用户的登录状态也就ok了
主要的实现步骤:在下一篇