Часто у людей пишущих программное обеспечение возникает задача сделать ту или иную задачу в фоне или отделить её от общего потока, пусть то будет проигрывание музыки в фоне, или допустим выполнение GET/POST запроса на сервер когда программа находится в спящем режиме, ну или например запустить какой-то не большой модуль в отдельном потоке для того что бы не загружать сильно программу разным сложным функционалом и что бы она не тормозила. Для таких задач есть такие прекрасные классы как Runnable, Thread, AsyncTask и Service. Сегодня я хочу вам рассказать про использование этих классов, с некоторыми вы сталкивались уже, я описывал класс Service в туториале про написание игры, в 8 уроке. Сегодня же мы рассмотрим все варианты работе с потоками и фоновыми режимами.