Dialog Pop Up и возврат активности - PullRequest
0 голосов
/ 09 марта 2019

Я новичок в Котлине, у меня есть первое действие с логином, а второе - с обзором корзины. Данные просмотра рецикла взяты из метода http3. Извините за мой плохой английский. Как я могу показать dialogPopUp, когда у меня есть код 404, и вернуться в предыдущей операции входа в систему?

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Обратные вызовы OkHttp выполняются в фоновом потоке, если вы используете enqueue, и показ диалога является задачей пользовательского интерфейса, для этого его необходимо запустить в потоке пользовательского интерфейса.

В вашем случае вы можете легко сделать это, запустивваш код диалога, используя runOnUiThread.

runOnUiThread {
    dialogPopUp("Error parameters", mContext ).showDialog()
}

Так же, как вы сделали в своем блоке else.Вы также можете достичь этого, используя Обработчик , созданный в потоке пользовательского интерфейса.

Обновление: При более внимательном рассмотрении вашего кода я понял, что вызапуск fetchJson в фоновом потоке с помощью функции doAsync.Когда вы используете enqueue на OkHttp.Call, вы в основном отправляете его для выполнения в фоновом потоке, поэтому нет необходимости использовать doAsync.Если вы удалите doAsync, вам больше не нужно будет использовать runOnUiThread, поскольку обратный вызов будет выполняться в потоке пользовательского интерфейса.

0 голосов
/ 09 марта 2019
Can't create handler inside thread that has not called Looper.prepare()

Это в основном означает, что вам нужно использовать поток пользовательского интерфейса при вызове этого кода. Поток пользовательского интерфейса нужно будет использовать для отображения вашего диалога.

Вы можете сделать:

runOnUiThread {
    dialogPopUp("Error parameters", mContext ).showDialog()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...