Так что в моих дальнейших попытках реализовать цикл while в Android я придумал следующий код:
private boolean connected = false;
private Thread loop = new Thread() {
public void run() {
Looper.prepare();
while (connected) {
do_Something();
}
Looper.loop();
}
};
onCreate() {
//.....
ok = (Button) findViewById(R.id.button1);
ok.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (connected) {
try {
loop.start();
}
catch (Exception e) {
Toast.makeText(getBaseContext(), "Exception caught", Toast.LENGTH_LONG).show();
}
}
return true;
}
});
stop = (Button)findViewById(R.id.button2);
stop.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
//disconnects current connection
connected = false;
}
return true;
}
});
}
То есть, я пытаюсь, чтобы при прикосновении к первой кнопке мой поток пользовательского интерфейса переключался на поток, который будет снова и снова делать do_something до касания второй кнопки, и в этом случае логическое значение var k отключится и полностью остановить вновь созданный поток от нажатия кнопки первой кнопки. У меня есть google'd «потоки / обработчики / Android, хотя петли», но безрезультатно. Любая помощь в том, что я пытаюсь сделать, будет высоко ценится
Проще говоря, как мне убить созданный поток нажатием второй кнопки?