Вдогонку по многозадачности в iOS4

топ 100 блогов cd_riper24.06.2010 Собственно, что такое "многозадачность" от Apple?

Порыл я соответствующую информацию в SDK. В iOS4 добавили два новых состояния для приложения -- Background и Suspended.

Первое -- это возможность работать в фоне (background execution), ограничившись набором из нескольких допустимых сценариев location/voip/audio, и будучи крайне ограниченным в возможностях (к примеру, нельзя использовать шареные ресурсы, вроде адресной книги). Как я понимаю, даже с такими возможностями можно делать некоторые интересные вещи, другое дело, что цензоры-нацисты, наверняка будут срезать приложения, которые будут использовать этот режим не по прямому назначению, и именно для этого ввели эти, очевидно глупые и условные сценарии.

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

У меня сложилось мнение, что сейчас режим Suspended на iPhone 3Gs для старых приложений не работает вовсе. Уход в фон есть просто закрытие приложение. А восстановление -- обычный запуск. Поэтому "интересную" панель с задачами, про которую я писал вчера, можно трактовать лишь как набор ярлыков для недавно запущенных приложений, из которых вы типа не вышли.

Вопрос, почему режим Suspended не работает довольно интересный.
Понятно, что он не работает, если в системе критически мало памяти, но я не думаю, что в том же iPhone 3Gs это перманентная ситуация.
Этот режим отключили для всех приложений, собранных для ОС, ниже четвертой версии? А зачем? Я не вижу смысла технических ограничений из-за которых Apple была бы вынуждена это сделать. Причины политические, стимул к пересборке под новую ОС?
Или его специально отключили для всех старых приложений на iPhone 3Gs, но разрешили на iPhone 4? Умышленное обрезание функциональности, которое, как всегда, свалят на hardware limitations.

Если у кого-то есть возможность провести ряд экспериментов по этой теме -- было бы очень интересно посмотреть на результаты.

Мораль? Мораль простая. Мнимая забота о пользователях (ах, батарейка!) -- тот еще гемор разработчикам.

SDK Background Execution --
http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

зы. Сегодня на M-R наконец-то вышел материал по iOS4 от Кузьмина.

Отметил про себя одну интересную вещь в психологии яблочного фаната. Тормоза и лаги новой версии ОС на девайсе годичной давности (который, кстати, позиционировался как супер быстрый!) воспринимается как данность, главное, чтобы все новые рулезы на следующем айфоне работали хорошо. Т.е. человек год назад штуку зелени выбросил, и уже, не задумываясь, приготовил еще одну, для покупки iPhone 4.

Оно -- http://www.mobile-review.com/apple/articles/ios4.shtml

зы2. Сохранение состояния приложения на диск -- не самая тривиальная задача для разработчика. Некоторые даже считают, что это главная проблема в современном программировании, и более того, пытаются решить ее кардинально, на уровне ОС.
Угу, я намекают на известный проект -- Phantom.

Оставить комментарий

Предыдущие записи блогера :
Архив записей в блогах:
2. Расчеловечивание. От хороших овец не остается и клочка шерсти. Пытливыми умами замечено, что современные медийные персоны часто являются дальними родственниками сильных мира сего: королей, царей, баронов... Так, к примеру, после проведения генетической экспертизы выяснилось, ...
Интересно, где будут подписывать будущий договор о евродезинтеграции. В каком-нибудь курортном Баден-Бадене или, соблюдая двенадцативековую традицию, в ...
Скучающий безработный пробрался в больницу во французском городе Бордо департамента Жиронда и долгое время выдавал себя за врача. 46-летний мужчина ходил по различным отделениям в медицинском халате и со стетоскопом на шее, которые предварительно стащил в больнице. Он держался подальше ...
Боинг-747 рейсом TWA 800 взорвался после взлёта, убив 230 человек. Проведённое расследование пришло к следующей картине произошедшего: Наиболее вероятной причиной катастрофы стал взрыв паров топлива в центральном баке самолёта. Центральный топливный бак находится над горячими ...
...