Правильный подход для метода-обработчика postDelay в конструкторе - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть следующий поток с конструктором в моем классе обслуживания.

public class communicationDetails extends Thread {
    communicationDetails(final Handler _handler, final Handler conn_handler) throws IOException {
        mhandler = _handler;
        connHandler = conn_handler;
    }

В onCreate в моем сервисе я попытался создать поток и запустить его. Первый обработчик работает нормально, я моготправлять сообщения.Поскольку я хочу отправить сообщение с задержкой, во втором обработчике я пытаюсь использовать метод postDelay.Вот тут и возникает проблема.

    try {
        communication_Details = new communicationDetails(
                // works fine
                new Handler(Looper.getMainLooper()) {
                    @Override
                    public void handleMessage(final Message msg) {
                        // sending messages
                    }
                }, 

                //this throws an error
                new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
                    @Override
                    public void run() {
                      // call a method
                    }
                }, 2000));
        } catch (IOException e) {
            e.printStackTrace();
        }

    communication_Details.start();

Я получаю следующую ошибку.Какую глупую ошибку я здесь делаю?или это совершенно неправильный подход.

error: incompatible types: boolean cannot be converted to Handler

1 Ответ

1 голос
/ 24 сентября 2019

Ошибка: incompatible types вызвана тем, что: -

handler.postDelayed(runnable) --> returns boolean

, в то время как конструктору требуется объект типа android.os.Handler

Таким образом, вы в основном передаете boolean вместо экземпляра Handler

Для получения дополнительной информации оформите android.os.Handler. (cmd + click) на обработчике

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...