Когда я нажимаю кнопку «Назад», мой таймер все еще работает.Остановите поток, когда пользователь нажимает кнопку «Назад»
для остановки нити я стараюсь: interput() в OnDestroy(), OnPause() и onBackPressed() не работает, и я получаю проникнуть 'зайцем'
косяк использование и посмотреть?! cancel() (В некоторых проблемах, как я сказал, используйте Cancel(), но не знаю, почему я не вижу, когда я нажимаю «myThread.?»)
Я также пытаюсь выполнить неправильное условие во время цикла, но не решить мою проблему. (Там была одна разницы с предыдущим способом, который после нажатия кнопки я увидел крах моего приложения назад!)
и это мой код я написал:
counterTime = 11;
while (counterTime > 0) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
counterTime--;
if (txtTimer != null) {
G.HANDLER.post(new Runnable() {
@Override
public void run() {
int min = (int) Math.floor(counterTime/60);
int sec = counterTime % 60;
String secPerfix = "";
if (sec < 10) {
secPerfix = "0";
}
txtTimer.setText(min + ":" + secPerfix + sec);
}
});
}
}
private synchronized void stopThread() {
if (threadTimer != null){
threadTimer.interrupt();
}
}
@Override
public void onBackPressed() {
stopThread();
super.onBackPressed();
}
Спасибо.
еще лучше, поставить попробовать { } ловить за пределами цикла while – ControlAltDel