android AsyncTask::onProgressUpdate() ошибка сборки gradle, когда я пытаюсь использовать что-либо из действия (поток пользовательского интерфейса)

Я немного озадачен. Прежде чем я начну, я должен упомянуть, что использую AndroidSutdio 2.3.3 (последняя версия на момент написания статьи).

Что я пытаюсь сделать

У меня есть основное действие, которое создает AsyncTask и выполняет его. В AsyncTask я хочу обновить пользовательский интерфейс после сбора некоторых данных. Из того, что я прочитал, я должен иметь возможность вызывать updateProgress() из метода doInBackground() AsyncTask. Это, в свою очередь, должно вызывать метод onProgressUpdate() AsyncTask, внутри которого я должен иметь доступ к данным и методам из основного действия.

Проблема

Проблема в том, что градостроитель жалуется на то, что методы, используемые внутри onProgressUpdate(), те, что принадлежат основному действию, не объявлены. Он пытается найти эти методы и данные внутри текущей AsyncTask вместо активности.

В заключение

  • Я не знаю, работает это или нет, потому что я не смог пройти процесс сборки, чтобы проверить это.
  • Я путаю поток пользовательского интерфейса с активностью, или это одно и то же?
  • Я читал, что onPreExecute, onPostExecute и onProgressUpdate AsyncTask запускаются в потоке пользовательского интерфейса. Если это правильно, почему я получаю ошибки сборки?
  • Есть ли какая-то настройка, которую мне нужно исправить в AndroidStudio, чтобы преодолеть это?

person nirolph    schedule 07.08.2017    source источник


Ответы (1)


Ну, я нашел проблему. У меня не получилось, т.к. записал асинхронную задачу в отдельный файл. Объявление в файле класса активности решило проблему.

person nirolph    schedule 08.08.2017