まず第一に、使用する方法を選択することさえできませんでした。私は何時間も読んでいますが、誰かが「ハンドラー」を使用すると言い、誰かが「タイマー」を使用すると言います。これが私が達成しようとしていることです:
環境設定では、繰り返しジョブを有効/無効にする設定(チェックボックス)があります。そのチェックボックスがオンになっていると、タイマーが機能し始め、x 秒ごとにスレッドが実行されます。チェックボックスがオフになっているため、タイマーは停止するはずです。
これが私のコードです:
チェックボックスがチェックされているかどうかを確認し、チェックされている場合は「refreshAllServers」voidが実行され、タイマーでジョブが実行されます。
boolean CheckboxPreference = prefs.getBoolean("checkboxPref", true);
if(CheckboxPreference == true) {
Main main = new Main();
main.refreshAllServers("start");
} else {
Main main = new Main();
main.refreshAllServers("stop");
}
タイマー ジョブを実行する refreshAllServers void:
public void refreshAllServers(String start) {
if(start == "start") {
// Start the timer which will repeatingly execute the thread
} else {
// stop the timer
}
そして、これが私のスレッドの実行方法です:(タイマーなしでうまく動作します)
Thread myThread = new MyThread(-5);
myThread.start();
私が試したことは?
Google から確認できる例 (ハンドラー、タイマー) を試してみましたが、いずれも機能しませんでした。タイマーを 1 回開始することはできましたが、停止しても機能しませんでした。私の調査で見た最も単純でわかりやすいコードは次のとおりです。
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
// your code here
}
},
5000
);