Ожидание завершения ASyncTask или переменной

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

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

То, что я пробовал до сих пор:

 while (!task.isCancelled()) { // Wait... } 

А также

 while (variable == null) { // Wait ... } 

Я делаю лучший способ передать переменную из AsyncTask в свою активность? Если это так, то как я могу дождаться завершения задачи в активности без блокировки пользовательского интерфейса?

Просто поместите свой код, который вы хотите выполнить после изменения переменной в функции, и вызовите эту функцию из onPostExecute.

Если вы зависите от результата AsyncTask, вы можете это сделать. Результат объекта = asyncTask.execute (). Get (); Тип результата – тип возвращаемого значения в методе doInBackground (). Но тогда ваш основной поток будет ждать завершения задания.