Я работаю над java/android, используя поток, чтобы сделать линейного следящего робота с помощью nxt. Код содержит цикл while как истинный. Я хочу остановить это, когда захочу, установив его как false, но он отвечает только мгновение, а затем снова запускает цикл. В противном случае это заморозит приложение, потому что оно застряло в цикле. Может быть, я должен использовать поток обработчика? Я не могу использовать break, потому что он будет делать только одно раз, а затем остановится.Как остановить бесконечный цикл while при нажатии кнопки
Я новичок в java и, пожалуйста, поделитесь своими знаниями, если вы знаете что-либо относительно этого. Простите, если я не очень хорошо объясню свою проблему. спасибо
@Override
public void run(){
threadRunning=true;
int min = 30, max = 37, readLight = 0, Mspeed = 90, Mspeed2 = 20;
LightSensor ls = new LightSensor(SensorPort.S3);
while(threadRunning){
Motor.A.forward();
Motor.C.forward();
readLight = ls.readValue();
LeJOSDroid.sendMessageToUIThread("Sensor: "+ls.readValue());
if (readLight < min){
readLight = min+1;
}
if (max < readLight){
readLight = max-1;
}
Motor.C.setSpeed(Mspeed + (Mspeed2 * (readLight - min)));
Motor.A.setSpeed(Mspeed + (Mspeed2 * (max - readLight)));
}
}
Можете ли вы разместить свой код plz? – Maxouille
Я думаю, что 'break;' это код, чтобы выйти из бесконечного цикла. – pheromix
@pheromix, к сожалению, я хочу, чтобы цикл продолжал идти без каких-либо условий, чтобы остановить его, за исключением того, что я нажимаю кнопку или любое действие от пользователя, чтобы остановить ее. –