1

私はこのような実行可能なクラスを持っています:

public class GetUpdatesThread implements Runnable{

@Override
public void run() {
     //call a webservice and parse response

}

}

たとえば、10秒ごとに発射したいのですが...

これを達成するために、アクティビティでハンドラー、ランナブル、またはタイマーを管理するにはどうすればよいですか?

前もって感謝します!

4

4 に答える 4

3

TimerTaskを使用して、このように実装できます。

int delay = 5000; // delay for 5 sec.
int period = 10000; // repeat every 10 secs.

Timer timer = new Timer();

timer.scheduleAtFixedRate(new TimerTask() {

public void run() {

System.out.println("repeating");

}

}, delay, period);
于 2012-06-01T10:58:45.990 に答える
3

このリンクから scheduleAtFixedRate というタイマー メソッドを使用できます。私はすでにプロジェクト内で使用しており、魅力的に機能します。開始遅延時間とその期間を指定するだけで機能します。

于 2012-06-01T11:03:31.567 に答える
0

これを行う最良の方法は、AlarmManagerクラスを使用することです。

1)serRepeatメソッドを使用してAlarmManagerをスケジュールします。AlarmManagerのリンク

2)Alarmmanagerでブロードキャストレシーバーを設定します。特定の時間ごとにレシーバーを呼び出します。これで、レシーバーからスレッドを開始できます。

タイマータスクと他のスケジューラーを使用する場合、Androidはしばらくするとそれらを強制終了します。

于 2012-06-01T11:05:47.820 に答える
0

Handlerを使用して、sendEmptyMessageDelayedメソッドを呼び出すことができます。これは、ハンドラーの使用に関するチュートリアルですまた、公式ドキュメントのタイマーからのUIの更新も確認してください。TimerTaskとHandlerの両方のアプローチについて説明しています。

于 2012-06-01T10:59:11.663 に答える