Я знаю, что вы можете прервать поток, созданный из say runnable class, но как я могу прервать этот поток, который я создал из метода? Использование volatile boolean для меня не работает, поэтому я предполагаю, что есть лучший способ сделать это, или мне нужно как-то прервать его. Я не хочу прерывать все потоки, только этот.Как прервать поток, созданный внутри метода?
Я создал метод, который стартует в тему, как это:
public static void StartSyncThread() {
new Thread() {
public void run() {
isRunning = true; // Set to true so while loop will start
while (isRunning) {
...
}
} // Close run()
}.start();
}
....
public static void KillSyncThread() {
isRunning = false;
}
Это должно сработать. Даже если вы не представили декларацию 'isRunning', она будет компилироваться только в том случае, если' isRunning' объявлен как 'boolean' static для окружающего класса. –
Не работает. Даже если логическое значение нестабильно. Когда я вызываю kill, он продолжает работать. – Ducksauce88
Можете ли вы предоставить декларацию 'isRunning'? Я предполагаю, что он объявлен статическим для окружающего класса. Возможно, вы случайно положили 'boolean' из строки' isRunning = true; ', а метод' run() 'не собирал изменения какой-либо другой переменной isRunning? –