Я немного озадачен. Прежде чем я начну, я должен упомянуть, что использую AndroidSutdio 2.3.3 (последняя версия на момент написания статьи).
Что я пытаюсь сделать
У меня есть основное действие, которое создает AsyncTask и выполняет его. В AsyncTask я хочу обновить пользовательский интерфейс после сбора некоторых данных. Из того, что я прочитал, я должен иметь возможность вызывать updateProgress() из метода doInBackground() AsyncTask. Это, в свою очередь, должно вызывать метод onProgressUpdate() AsyncTask, внутри которого я должен иметь доступ к данным и методам из основного действия.
Проблема
Проблема в том, что градостроитель жалуется на то, что методы, используемые внутри onProgressUpdate(), те, что принадлежат основному действию, не объявлены. Он пытается найти эти методы и данные внутри текущей AsyncTask вместо активности.
В заключение
- Я не знаю, работает это или нет, потому что я не смог пройти процесс сборки, чтобы проверить это.
- Я путаю поток пользовательского интерфейса с активностью, или это одно и то же?
- Я читал, что onPreExecute, onPostExecute и onProgressUpdate AsyncTask запускаются в потоке пользовательского интерфейса. Если это правильно, почему я получаю ошибки сборки?
- Есть ли какая-то настройка, которую мне нужно исправить в AndroidStudio, чтобы преодолеть это?