Правильный способ остановки обработчика: handler.getLooper().quit();
Я обычно реализую это, отправляя сообщение о выходе обработчику, который завершает себя.
Правильный способ остановки общего потока:1005 *
Поток, который останавливается, должен обрабатывать прерывание:
if(isInterrupted())
return;
Это можно поместить в цикл, если вы хотите:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
try {
while(!isInterrupted() && (line = br.readLine()) != null) {
// Do stuff with the line
}
}
catch(IOException e) {
// Handle IOException
}
catch(InterruptedException e) {
// Someone called interrupt on the thread
return;
}