2017-03-16 89 views
1

我想制作一个评论系统,只允许用户每5分钟发送约20条评论。这样我可以肯定没有人会发送太多的垃圾邮件......允许用户每5分钟发送最多20条评论?

我想我可以使用sharedpreferences来计数注释。我阅读每条评论并增加数量。但是最后5分钟呢?

int value = sharedPref.getInt("count", 0); 
value = value + 1; 
editor.putInt("count", value); 
+0

可能会对“现在和现在” - 5分钟执行日期时间差操作,然后重置您的sharedpreferences变量。保存时间戳,并计入密钥对中。人们在游戏/应用程序世界中一直这样做。你每小时得到100个硬币等等,等等 – ApolloSoftware

+1

@AololSoftware哦,谢谢你的回答,它有很多帮助! –

+1

我会把一个详细的版本作为答案。 – ApolloSoftware

回答

1

在现在和现在需要做一个日期/时间差操作 - 5分钟。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd:HH:mm"); 
String cTime = sdf.format(new Date()); 

Date date = formatter.parse(cTime); 
Calendar futureTime = Calendar.getInstance(); 
futureTime.setTime(date); 
futureTime.add(Calendar.MINUTES, 5); //This will be now + 5 minutes. 

然后,您可以重置您的SharedPreferences变量。

将用户,时间戳和计数保存在SharedPreference变量/数据中的密钥对中。您可能必须创建一个具有两个或更多这些值的自定义对象,因为它是自己的自定义类。也许用户作为字符串,另外两个值,可以稍后解析出来。使用HashMap:

Map<String, String> aMap = new HashMap<String, String>(); 

人们在游戏/应用程序世界中一直这样做。你每小时得到100个硬币等,等等。我已经在iOS/Android的c#/ Unity3D中实现了一些东西。您每小时免费获得100个硬币,您可以在应用内购买更多的硬币,或者让时间更快!

+1

非常感谢你,朋友! –

+0

不客气! @RickJoe – ApolloSoftware