2014-03-26 100 views
2

我有我的应用程序中的东西,我希望用户只能够每24小时做一次。我怎样才能做到这一点?我基本上希望他们点击一个按钮,如果他们上次点击该按钮的时间少于24小时,则会弹出一个敬酒信息,告诉他们等待。我知道我可以做getTime(),但我不知道如何持续存储那个时间。如何限制在Android应用程序中的时间动作?

回答

0

SharedPreferences允许您在应用程序中存储持久性数据,并可以通过获取当前的时间System.currentTimeMillis()

final long DURATION = 24 * 60 * 60 * 1000; // 24 hours in milliseconds 

yourButton.setOnClickListener(
    new OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      long currentTime = System.currentTimeMillis(); 
      SharedPreferences settings = getPreferences(MODE_PRIVATE); 
      if((currentTime - settings.getLong("last_click", 0)) > DURATION) { 
       // Save the new click time 
       settings.edit().putLong("last_click", currentTime).commit(); 

       // Do your stuff here! 
      } else { 
       // Less than 24 hours, show your toast here! 
      } 
     } 
    } 
); 
+0

这工作,但我想插入到一个静态方法。这可能吗? – user3016349

+0

什么静态方法?你可以将你的代码粘贴到你的问题中吗? –

+0

我想通了。只需要做context.getsharedpreferences(“XXX”,0) – user3016349

1

有几个选项可以使用,请查看此链接:http://developer.android.com/guide/topics/data/data-storage.html

最简单的,这些很可能会使用共享偏好,例如:

SharedPreferences settings = getPreferences(MODE_PRIVATE); 
    // to read a value: 
    last_click= settings.getLong("last_click", default_value); 

    //to write a value: 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putLong("last_click", time); 
    editor.commit(); 
+0

那不是对'意图'的时间限制吗? – jww

相关问题