Как заставить мой обработчик выйти из моего Runnable в моем сервисе? - PullRequest
0 голосов
/ 21 сентября 2018

У меня работает 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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...