Как заставить обновление пользовательского интерфейса перед выполнением AsyncTask? - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в разработке Android.Я выполняю AsyncTask, когда нажимается значок меню на панели приложений.Однако значок никогда не показывает, что он был нажат до завершения AsyncTask.Таким образом, хотя сетевая задача может занимать несколько секунд, пользователю кажется, что кнопка ничего не делает.

Существует ли способ заставить пользовательский интерфейс отображать анимацию нажатия иконки перед выполнением задачи?Кроме того, тост, который я установил, не будет выполняться до тех пор, пока не будет завершен AsyncTask.Заранее спасибо.

РЕДАКТИРОВАТЬ: я закончил с использованием обработчика с задержкой выполнения, как предложено в комментарии ниже Dastan:

its not recommended but if still its not solving may be you can add delay Handler().postDelayed(asyncTask,400); 
//400ms animation time – dastan Feb 13 at 2:06

Это позволяет обновлять пользовательский интерфейс.Однако я бы хотел найти более эффективное решение.

1 Ответ

0 голосов
/ 13 февраля 2019

Привет, добро пожаловать в разработку Android.1-е решение: использовать эту библиотеку для кнопки https://github.com/medyo/Fancybuttons

2-е решение: не запускать в потоке пользовательского интерфейса, потому что он прекратит рисовать пользовательский интерфейс.

3-е решение: использовать библиотеку RX, ее мощный и выне нужно ждать окончания процесса.

Моя рекомендация - использовать 3-е решение, эффективное и простое в обслуживании.

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