开发的第30天-验证是否首次登陆和连续登录

安卓背词客开发日记

开发的第30天-验证是否首次登陆和连续登录

2019-3.11
今天主要实现的是单词复习的功能。用户每天需要复习1,3,5,7天前记忆的单词。并且今天如果不复习,会保留到明天。提取问题
1. 验证用户每天是不是第一次登录;
2.单词如何验证需要复习和保持到明天

  • 单词如何验证需要复习用户每次记忆单词都会有时间标记,我们只要取出来这个时间标记,然后比较和现在的时间差就知道了。

  • 实现用户要复习的单词保持到明天,初步计划是,在要复习的单词表中,将今天要复习的单词的know设置为0,并带他们复习结束后,都将在设置成1.这样用户就算是没有复习,那今天的单词也会累积到明天,我们只要在每天第一次开机时将用户今天要记忆复习的单词的know
    设置为0即可。那麽问题来了 ,

  • 怎末实现分辨用户是不是第一次登录呢。我们可以用SharedPreferences去记录一个时间戳,然后用户每次打开app是获得另一个时间戳。

    然后相比较是不是同一天就可以了。此外还可以相比较时间的差值得出是不是连续登录。
    这些都涉及到时间比较的问题,小白我自己想了个办法,大神欢迎指教。

时间是以字符串的形式存在数据库或者sharedpreferences存在本地。我们可以先定义字符串的格式。可以自己定义

public static String gettime() {
	 Date day=new Date();    
	 SimpleDateFormat df = new SimpleDateFormat("MM-dd HH:mm"); 
	 return df.format(day);
} 

等固定下来时间字符串的格式后。就可以进行处理了
得到的字符串为

3-11 19:32

使用字符切割函数string.split("-") 切分字符得到 String [ ]数组
取后半段就是String[1] 得到的是 11 19:32
然后使用再次split(" ")这次取得前半段 ,得到字符11 然后使用字符转 integer 方法 Integer.valueOf(string);得到数值 然后进行比较。下面是代码

		public static int get_time_def(String Data1, String Data2) {
		int def = 0;//去除两边空格
		String Data1_time = Data1.trim();
		String Data2_time = Data2.trim();
		
		//对data1处理
		String[] temp1= Data1_time.split("-");
		String Data1_day_with_hour = temp1[1];
		String[] temp2=Data1_day_with_hour.split(" ");	
		String Data1_day = temp2[0];
	    	
		//对data2处理
		String[] temp3= Data2_time.split("-");
		String Data2_day_with_hour = temp3[1];
		String[] temp4=Data2_day_with_hour.split(" ");	
		String Data2_day = temp4[0];
		
		if (temp1[0].equals(temp3[0])) {//判断是不是同一个月
			//转整型
			int int_day1 = Integer.valueOf(Data1_day);
			int int_day2 = Integer.valueOf(Data2_day);
			def = int_day1 - int_day2;
		}else {
			def=-1;
		}
		return def;
	}
	}

判断是不是同一天需要将上次登录时间和本次登录时间同时传入,
如果def=0;则是同一天.。
如果def=1 说明是第二天登录,并且连续登录。
若大于2 则不连续登录。
若=-1 则不好判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值