Android如何判断app是否是每日第一次登录
来源:互联网 发布:萨德事件 知乎 编辑:程序博客网 时间:2024/06/07 03:04
转载同事的内容
原文链接 这里写链接内容
首先这里先给出一个大致的思路,就是首先我们的保存一个最后退出的时间,然后每次app进入的时候再拿到我们之前保存退出的时间,和当前的时间进行对比,如果相同则是同一天内登录,反之。思路理清了,剩下的就是填空题了。
一.首先当我们每次进入时获取之前存储的时间,这里直接上我自己写的一个方法,注释都很全直接看
** * 判断是否是当日第一次登陆 */ private void isTodayFirstLogin() { //取 SharedPreferences preferences = getSharedPreferences("LastLoginTime", MODE_PRIVATE); String lastTime = preferences.getString("LoginTime", "2017-04-08"); // Toast.makeText(MainActivity.this, "value="+date, Toast.LENGTH_SHORT).show(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 设置日期格式 todayTime = df.format(new Date());// 获取当前的日期 if (lastTime.equals(todayTime)) { //如果两个时间段相等 Toast.makeText(this, "不是当日首次登陆", Toast.LENGTH_SHORT).show(); Log.e("Time", lastTime); } else { Toast.makeText(this, "当日首次登陆送积分", Toast.LENGTH_SHORT).show(); Log.e("date", lastTime); Log.e("todayDate", todayTime); } }
这里解释一下
String lastTime = preferences.getString(“LoginTime”, “2017-04-08”);
这个为什么后面还有个”2017-04-08”。这个是考虑到安装app的时候第一次我们没有存储退出的时间,所以就当取不到数据的时候给他一个默认值。这样当app第一次安装的时候默认判断是第一次登录的。
二.然后退出时间保存我是在onDestroy()的时候进行保存
@Override protected void onDestroy() { super.onDestroy(); saveExitTime(todayTime); }
/** * 保存每次退出的时间 * @param extiLoginTime */ private void saveExitTime(String extiLoginTime) { SharedPreferences.Editor editor = getSharedPreferences("LastLoginTime", MODE_PRIVATE).edit(); editor.putString("LoginTime", extiLoginTime); //这里用apply()而没有用commit()是因为apply()是异步处理提交,不需要返回结果,而我也没有后续操作 //而commit()是同步的,效率相对较低 //apply()提交的数据会覆盖之前的,这个需求正是我们需要的结果 editor.apply(); }
就是这么简单完成了。
阅读全文
1 0
- Android如何判断app是否是每日第一次登录
- Android如何判断app是否是每日第一次登录
- Android如何判断app是否是每日第一次登录
- 如何判断是否是第一次启动app
- Android判断app是否是第一次运行
- android 启动全屏+动画+判断是否是第一次登录
- android开发 判断app是否是第一次安装
- 判断 SharedPreferences 是否是第一次登录
- 判断是否是第一次运行app
- 判断app是否是第一次进入
- IOS判断APP是否是第一次启动
- 如何判断用户是否为第一次进入app或者是第一次进入指定页面
- Android判断APP是否第一次启动
- Android判断APP是否第一次启动
- Android判断APP是否第一次启动
- Android判断APP是否第一次启动
- Android判断APP是否第一次启动
- Android 判断用户是否第一次进入APP
- LeetCode: Maximim SubArray
- 通过ESP8266手机或电脑浏览器网页能控制远程任意组任意路继电器开关并收发单片机指令 测试OK
- JS中Unix时间戳转换日期格式
- 如何让一个Java类或者方法过时
- BUG_tomcat启动报错Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
- Android如何判断app是否是每日第一次登录
- FZU 2203 单纵大法好 (二分)
- 登陆注册实现流程
- IntelliJ IDEA 常用快捷键整理
- MySql的存储过程的作用以及详细用法
- HTML5页面调用百度地图API,获取当前位置并导航到目的地
- 【JFinal】WARN:oejuc.AbstractLifeCycle:FAILED jfinal: java.lang.NullPointerException
- ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate
- Java并发编程:并发容器之CopyOnWriteArrayList(转载)