0

30 秒ごとにレコードがSQLite DBに保存されます。

30 秒以内にスレッドを実行して、レコード数をサーバーにポストしたいと考えています。

スレッドが30 秒を超えた場合は、スレッドを単独で強制終了します。

4

3 に答える 3

3

次のようにタイマーを使用します。

Timer t = new Timer();
  t.schedule(new TimerTask() {

      @Override
      public void run() {                   //timer

          System.out.println("done");
          this.cancel();

      }
  }, 30000L);
于 2012-06-05T10:29:15.320 に答える
1

ハンドラー、特にpostDelayed(Runnable, long)メソッドを見てください。

これは、将来実行するコードを指定するための軽量な方法です。この場合、コードを設定して30 seconds、問題のあるコードがまだ実行されているかどうかを確認できます。

(たとえば、コードの実行時にブール値をtrueに設定することにより)、使用可能な手段でそれを強制終了します。

于 2012-06-05T10:28:50.093 に答える
1
  1. thread.sleep(30000);スレッドを30秒間スリープするために使用します。
  2. run()メソッドでDBにデータを格納するためのコードを実装します。
  3. 記録データの保存が完了したら、thread.interrupt();

注:thread.stop();非推奨の方法であるため、使用しないでください。

于 2012-06-05T10:29:33.170 に答える