Comments 12
почему для нашего приложения (электронная газета на iPad) все вышеперечисленное не сработалоА почему не сработал newsstand?
+2
По нескольким причинам.
Во-первых, в newsstand можно посылать всего один push день — а у нас несколько выпусков. Во-вторых, newsstand довольно серьезно завязан на автоматически обновляемую подписку, а она не во всех странах доступна. Ну и кроме этого, newsstand требует хранить данные у себя и может удалить не активный в данный момент контент, если он решит что у него осталось мало места…
Во-первых, в newsstand можно посылать всего один push день — а у нас несколько выпусков. Во-вторых, newsstand довольно серьезно завязан на автоматически обновляемую подписку, а она не во всех странах доступна. Ну и кроме этого, newsstand требует хранить данные у себя и может удалить не активный в данный момент контент, если он решит что у него осталось мало места…
+1
С такой ложкой дегтя от бочки меда никакого проку. Ну не то чтобы никакого, но очень существенно снижает полезность API. Я понимаю, что они борятся за жизнь батареи, но подчас методы совсем уж драконовские.
0
В iOS 7 та же самая ситуация с Significant Location Changes — если устройство было перезагружено или приложение было удалено из списка задач пользователем, то обновления не приходят и приложение не просыпается. В iOS 6 такой проблемы не было, никак не пойму баг ли это сейчас или фича и как обойти.
0
это фича — см. ответ к вопросу
stackoverflow.com/questions/18639976/significant-blocation-change-event-in-ios7-background-service-call
stackoverflow.com/questions/18639976/significant-blocation-change-event-in-ios7-background-service-call
0
При тестировании данной фичи я написал апп, который показывал локальную нотификацию всякий раз, когда система запускала backgroundFetch, а параметр minimumBackgroundFetchInterval = UIApplicationBackgroundFetchIntervalMinimum. За пару дней обычного использования айфона при наличии Wi-Fi апп запускается в фоне несколько раз в день. Иногда подряд около 5-10 раз с интервалом 10-20 мин.
Есть ещё один момент, если возвращать через completionHandler значение UIBackgroundFetchResultNewData, то система будет считать, что вы сохранили новые данные и скорее всего ваш UI тоже будет выглядеть по новому и соответственно скриншот аппа в списке задач устарел. Поэтому, по не понятным правилам, но апп будет отдельно запущен в фоновым режиме для перегенерации скриншота. Поэтому апп Погоды «всегда» показывает актуальную температуру на скриншоте в списке задач.
Есть ещё один момент, если возвращать через completionHandler значение UIBackgroundFetchResultNewData, то система будет считать, что вы сохранили новые данные и скорее всего ваш UI тоже будет выглядеть по новому и соответственно скриншот аппа в списке задач устарел. Поэтому, по не понятным правилам, но апп будет отдельно запущен в фоновым режиме для перегенерации скриншота. Поэтому апп Погоды «всегда» показывает актуальную температуру на скриншоте в списке задач.
0
Через приватный API научились часто обновлять скриншот в списке задач: twitter.com/b3ll/status/422480832587386880/photo/1
0
Есть ли возможность делать снимки фотокамерой внутри performFetchWithCompletionHandler?
0
Sign up to leave a comment.
Фоновое обновление данных в iOS7