所以在我進一步努力以實現Android的while循環我想出了下面的代碼:主題-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;
}
});
}
也就是說,我試圖在觸摸第一個按鈕將我的UI線程切換到線程,該線程一次又一次地do_something,直到觸摸第二個按鈕,在這種情況下,布爾var k將關閉,並完全停止新創建的線程從第一個按鈕按下按鈕。我google'd「線程/處理程序/ android while循環」但無濟於事。任何幫助,我想要做什麼將不勝感激
簡而言之,我如何殺死通過按第二個按鈕創建的線程?
你知道我認爲你已經結束了這個,你真正想要的是一個計時器。 – Tom
您必須將'connected'聲明爲'volatile' - 否則可能在您創建的線程中看不到變化 –