0

クライアントがいるセルに応じてクライアントに質問を送信するサーバーを構築します。たとえば、ローマのセルにいる場合、サーバーはロンドンのセルのクライアントに送信される質問とは異なる質問を送信し、質問がクライアントに送信された場合、サーバーはそのセルを 1 時間使用できない状態にします。つまり、質問はそのセル内のどのクライアントにも 1 時間送信されません。

そして私の質問は、その質問を1時間後に利用できるようにするためのJavaメソッドを作成するにはどうすればよいですか?

EDIT1:

私はハッシュテーブルを持っています。キーはセルで、値はこれらのセルで尋ねられる質問です

EDIT2

これがハッシュテーブルです

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

そして、私がセルで質問したとき、私はこれを作ります

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

そして、私はこのようなものが欲しい

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

2 に答える 2

1

TimerJava では、 classを使用して、必要な時間が経過した後にメソッドを実行するようにスケジュールできます。詳細については、この例をご覧ください: http://www.ibm.com/developerworks/java/library/j-schedule/index.html

EDIT1:

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はOSによって強制終了される傾向があります。

この投稿を見る

于 2012-06-26T14:33:59.960 に答える