2

実行可能ファイル(別のJavaファイル内)をスレッドに入れて開始するサービスがアプリケーションにあります。それは一度は問題なく動作しますが、一定の期間があるため、繰り返してほしいと思います。私はそれを処理するための良い方法が必要です。他の質問の答えを使わなかった理由は、無限に繰り返されたくないし、タスクを何回繰り返すかわからないからです。UIのボタンクリックで停止します。

スリープとifステートメントでループを使用することを考えていました。しかし、それは私のアプリケーションにとって本当に悪い設計だと思います。そのようなことをするための標準的な方法はありますか?

ありがとう...

4

3 に答える 3

4

どういうわけかタイマーのように振る舞うハンドラーを使うこともできますが、あなたの状況にはもっと良いと思います。

次のように初期化します。

Handler delayhandler = new Handler();

発射時間を次のように設定します(ミリ秒単位)。

delayhandler.postDelayed(mUpdateTimeTask, 500);

そしてそれはこれを呼びます:

private Runnable mUpdateTimeTask = new Runnable()
{   public void run()
    {   // Todo

        // This line is necessary for the next call
        delayhandler.postDelayed(this, 100);
    }
}

次の呼び出しを削除することもできます。

delayhandler.removeCallbacks(mUpdateTimeTask);
于 2012-05-01T15:09:15.980 に答える
1

TimerTaskを使用して、スレッド/メソッドを実行させます。

http://android.okhelp.cz/timer-simple-timertask-java-android-example/

http://developer.android.com/reference/java/util/TimerTask.html-Cancel()メソッドを使用して、TimerTaskの実行を停止できます。

于 2012-05-01T14:16:53.857 に答える
0

タイマーを使用すると、指定された期間の後にスレッドが実行されます。停止する場合は、タイマーを停止するか、無限の期間に設定します。

于 2012-05-01T13:45:24.713 に答える