스레드를 따로 돌리면 됩니다. 멤버 변수로 boolean running; 같은 애를 하나 선언해두고 run 버튼 click 시 onClick(View v) { running = true; startLoop(); } stop 버튼 click 시 onClick(View v) { running = false; } startLoop() { new Thread(new Runnable() { @Override public void run() { while (running) { // running } } }).run(); }