Android для начинающих. Урок 8: AsyncTask (часть 1).

Автор Alla Bessonova
Android для начинающих. Урок 8: AsyncTask (часть 1).

На прошлом уроке мы совершили.

Запрос к серверу. ВКонтакте, но столкнулись с ошибкой на этом уроке мы разберемся почему — это ошибка произошла. И вообще как её решать в WOT ошибка которая нас произошло на прошлом уроке она называется networkonmainthreadexception и она пришла потому, что мы делали.

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

Давайте поговорим в целом о потоках в Android приложения в Android приложение может быть несколько потоков будут выполняться одновременно при этом операционной системы Android либо распределит различные потоки на различные ядра либо будет либо будет выполнять потоки на одном при этом одно ядро будет очень-очень быстро перемещаться между различными потоками потихоньку выполняет то тут то там и при этом у нас будет создаваться видимость того, что выполняется одновременно — это этот технолог техника. Когда у нас ядро одно выполняет несколько потоков и при этом быстро между ними переключаться и у нас создаётся с того, что выполняется одновременно. Вот — это техника называется виртуальный параллельностью. Но об этом мы поговорим в следующем уроке про потоки в любом Android приложение есть так называемые главный который ответственен за прорисовку экранов переходов анимаций получения данных от пользователя нажатие на кнопку и так далее. Это главный поток он ответственен зовут основные функции в предложении и этот потом запускается при запуске приложения. То есть все те когда мы запускали приложение в симуляторе. Мы запускали весь кот наш в главном потоке и вот такой вот, что чтобы приложение работало плавно и не забирала не зависало мы должны приносить всю ресурсоемкая или просто долгую работу в отдельные потоки и не засорять главный поток то есть наш функционал по обращению к серверу. ВКонтакте должны вынести из главного потока в какой-то отдельный поток чтобы выполнялся либо на другом игре либо выполнялся на том же игре, но с помощью той виртуальный параллельности которые могут которые мы поговорим в следующем уроке в. Андроиде для того чтобы реализовывать программа есть специальный патрон или абстракция который называется asynctask она — это абстракция необходимо чтобы делать ресурсоемкая или долгую просто работу в потоке и после этого обновлять ua userfiles. То есть то, что пользователь видит в главном потоке то есть основная идея ассенизаторская — это чтобы взять какую-то работу долгую в отдельном потоке и чтобы после выполнения работы у нас обновлялся у, а то есть обновлялась то, что пользователь видит. Есенин у нас параметризованный класс. О дженериках мы говорили в курсе джаза начинающих может теперь смотреть и при создании объекта класса необходимо указать три параметра. То есть у нас обычно когда вот мы показывали храм изучали в курсе Java для начинающих мы организовывали там как правило. Одним параметром или. Максим двумя здесь у нас целых три параметра. Первый параметр называется этот тип входных параметров для выполняемого процесса 2 у нас называется. Прогресс Это тип данных возвращаемых ходе работы процесса elizalde — это тип данных возвращаемых процессом. То есть — это у нас процесс который должен выполняться в другом потоке которые должны выполняться в заднем плане и который по выполнению по выполнению должен как-то что-то возвращать, что у нас должно быть отображена в, что она должна быть отображена пользователя то есть в User Interface и парамос — это то, что мы. Передаем поэтому. Прогресс — это то, что процесс может возвращать в ходе своей работы например какие-то какую-нибудь статусе о статусе выполнения например тот же самый прогресс-бар вот — это вот строка выполнения то есть выполнено 30% выполнено 40% от того. Типа информацию. Мы можем зачать при выполнении краска и тип данных будет. Прогресс elizalde — это уже окончательно тип данных который возвращается после выполнения. То есть например при обращении к. ВКонтакте Когда мы выполним — это обращение мы вернем тип данных Real. Но в нашем случае ты быстро к и можно при создании презентации можно переопределить следующие методы методы background — это основной метод который мы будем переопределять именно в этом методе описывается основная логика того, что мы хотим делать в нашем процессе нашем отдельным. У нас есть также метод onprogress апдейт — это то, что мы хотим выполнять в момент выполнения этого процесса в момент заполнения если краска то есть ну говори о нашем то, что мы хотим выполнять ходе нашего запроса к. ВКонтакте То есть пока запроса заполняется мы можем хотим что-то выполнять например. Мы хотим для пользователей рисовать вот полосу загрузки на сколько процентов на выпускной запрос. Он после экзекуции — это то, что мы хотим выполнять после того как мы завершим наш процесс. То есть например после того как мы совершенно запросов в такси. Мы хотим выполнить что-то — это мы поместим в этот метод и он привезёт — это то, что выполняется в самом первом до всего остального например. Мы хотим инициализировать какие-то переменные и, что такое сделать таких четыре места которых мы можем которые мы можем переопределить.

0 комментариев
0

Читайте также