0

我构建了一个服务器,根据客户所在的单元格向他们发送问题,例如,如果他们在罗马的单元格中,服务器将向他们发送与发送给伦敦单元格中的客户的问题不同的问题,并且当一个问题是发送到客户端,服务器将使其对单元格不可用一小时,我的意思是该问题将永远不会发送给该单元格中的任何客户端一小时

我的问题是我怎样才能使这个问题在一小时后可用?

编辑1:

我有一个哈希表,键是单元格,值是这些单元格中提出的问题

编辑2

这是哈希表

static Hashtable<Integer, List<Integer>> unavialbeQuestions;

当我在牢房里问问题时,我做了这个

unavialbeQuestions.get(cellID).add(questionID);

我想要这样的东西

function makeQuestionAvailable(int questionID, int cellID){}
4

2 回答 2

1

在 java 中,您可以使用类安排方法在经过所需时间后运行Timer。查看此示例以了解详细信息: http: //www.ibm.com/developerworks/java/library/j-schedule/index.html

编辑1:

一小时后调用此函数:

function makeQuestionAvailable(int questionID, int cellID){
     unavialbeQuestions.get(cellID).remove(questionID);
}

EDIT2: 调度示例代码:

    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       Timer timer = new Timer();

       timer.schedule(new ScheduledTaskWithHandeler(), 5000);

    }

    final Handler handler = new Handler() {

       public void handleMessage(Message msg) {
          Toast.makeText(getApplicationContext(), "Run!",
          Toast.LENGTH_SHORT).show();
       }
    };

    class ScheduledTaskWithHandeler extends TimerTask {

       @Override
       public void run() {
          handler.sendEmptyMessage(0);
       }
    }
于 2012-06-26T14:23:16.080 回答
0

一般来说,使用 Android 时,您应该使用AlarmManager类而不是计时器,特别是如果您在后台执行此操作,TimerTasks 很容易被操作系统杀死。

看到这个帖子

于 2012-06-26T14:33:59.960 回答