2017-03-16 95 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