我正在使用Android中的線程進行簡單的應用程序工作。我的應用程序中有以下代碼片段。但這似乎並沒有奏效。Android線程 - 不適用於我
l = (RelativeLayout)findViewById(R.id.layout_main);
p = new LayoutParams(100, 100);
i = new ImageView(getApplicationContext());
i.setImageResource(R.drawable.bb);
i.setLayoutParams(p);
i.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (running) {
running = false;
} else {
new Thread(new Runnable() {
@Override
public void run() {
while (running) {
try {
Log.d("INFO", "Thread executing");
Thread.sleep(100);
} catch (Exception e) {
running = false;
}
}
}
}).start();
}
return false;
}
});
l.addView(i);
即使日誌不打印。
編輯:running = false;
是代碼
它因爲while條件中的代碼永遠不可達,因爲變量'running'從未設置爲true;試試這個: 'if(running){ running = false;其他{ running = true; while(running){...}' – Houcine
@Houcine我最初設置爲false運行。這是在我的onCreate方法 –
所以如果你的運行是錯誤的,那麼while將不會被執行,因爲你正在測試運行== true('while(running)') – Houcine