Прежде всего, я не мог даже выбрать способ использования, я читаю часами, и кто-то говорит, что использует "Обработчики", кто-то говорит, что использует "Таймер". Вот чего я пытаюсь добиться:
При настройках, есть параметр (флажок), который включает/отключает повторяющееся задание. Когда этот флажок установлен, таймер должен начать работать, и поток должен выполняться каждые x секунд. Поскольку флажок не установлен, таймер должен остановиться.
Здесь мой код:
Проверяется, установлен ли флажок или нет, если будет установлен флажок refreshAllServers, выполняющий задание с таймером.
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 (обработчики, таймер), ни один из них не работал, мне удалось запустить таймер один раз, но остановить его не удалось. Самый простой и понятный код, который я видел в своих исследованиях, был следующим:
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
// your code here
}
},
5000
);