Организация многозадачности в OS Android

автор: Андрей | 1 сентября, 2011

Многозадачность в OS Android устроена несколько иначе, чем в Symbian. Дело в том, что тот вариант здесь расходовал бы слишком много оперативной памяти и энергии. Инженеры создали приложения для Android, состоящими из четырех частей. Это Activities, Services, Broadcast receivers и Content providers.

Компонент Activites является графическим пользовательским интерфейсом для определенной задачи. Каждый интерфейс с задачей называется Activity. Таких Activity может быть сколько угодно, в зависимости от сложности приложения. Возьмем, к примеру, раздел “Новое сообщение”. Одно Activity здесь выводит список ваших контактов. Другое занимается непосредственно отображением текста. Третье показывает процесс отправки. И т.д. Каждое Activity может находиться в одном из трех состояний.

Если он находится на переднем плане экрана и взаимодействует с пользователем, то такое состояние зовется Running или Active. Если Activity находится на заднем плане и виден пользователю лишь слегка, то это состояние Paused. Если Activity сохраняет своё состояние, но полностью скрыто от глаз пользователя, то это состояние Stopped.

Состояния Paused и Stopped позволяют операционной системе по надобности выгрузить Activity из памяти. Для того чтобы пользователь мог вернуться к приложению в том состоянии, в котором он его оставил, Activity может вызвать метод onSaveInstanceState(). В этом случае при восстановлении вызывается метод onRestoreInstanceState(), и пользователь увидит приложение таким, каким оно было выгружено из оперативной памяти. На ПК аналогом такой системы можно назвать режим гибернации.