У меня работает Service
, который открывает Handler
и работает непрерывно, пока не произойдет событие.Затем, когда переменная isSafe
равна true
, я хочу, чтобы обработчик завершил работу вместе с Service
.Тем не менее, Handler
все еще идет и не остановится.Я могу сказать, потому что голосовой слушатель продолжает уходить и не будет выходить.Как мне выйти из моего Runnable
?
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
@Override
public void run() {
if (prefVoice.getBoolean("WordMatch", false) == false) {
VoiceLoop();
handler.postDelayed(this, postChanger());
} else if (prefVoice.getBoolean("WordMatch", false) == true) {
if (prefVoice.getBoolean("isSafe", false) == true) {
prefVoice.edit().putBoolean("WordMatch", false).apply();
handler.removeCallbacksAndMessages(this);
stopSelf();
} else{
if (prefVoice.getBoolean("isSafe", false)) {
} else{
String GPS = getGPS();
phoneFunctions.sendTextMessage(numbers, message, GPS);
handler.postDelayed(this, postChanger());
}
}
}
}
};
handler.postDelayed(runnable, postChanger());