У меня есть класс, который воспроизводит фоновую музыку в бесконечном цикле для игры. Я хочу, чтобы он остановился, когда другой класс вызывает метод stopPlaying() на объекте BackgroundMusic. Согласно документам Oracle, нет способа остановить поток в Java.Как остановить исполняемый поток музыки в Java?
Он сказал, что использует переменную, которая проверяет и останавливается, когда переменная является определенным значением. Я попытался сделать boolean running, который получает значение false, когда я вызываю stopPlaying() и пытаюсь заставить цикл while работать как условие вместо true, но это не сработало без задержки. (Сообщение отредактировано ранее)
Я бы разместил свой класс здесь, но этот сайт продолжает говорить, что он не отформатирован правильно, и я сделал это раньше (вставка из Eclipse). Я положил его на Pastebin: http://pastebin.com/edCH2DXE
Булево решение должно работать. Попытайтесь добавить свой код, и мы можем помочь вам проверить, что не так. – BobTheBuilder
Помните, что логическое значение должно быть 'volatile', иначе оно может быть кэшировано, и музыкальный поток никогда не увидит изменения его значения. – Thomas
_I ставил бы мой класс здесь, но этот сайт продолжает говорить, что он не отформатирован должным образом, и я сделал это раньше. Попробуйте поместить int в [PasteBin] (http://pastebin.com/) и вставьте свою ссылку в вопросе – BackSlash