До iOS 5.0 не было возможности синхронизировать данные с вашим приложением, когда приложение не было запущено. Однако были некоторые сценарии, когда приложение могло, например, завершить загрузку, когда приложение было прекращено, но эта фоновая обработка довольно ограничена.
Теперь, если вы хотите синхронизироваться с облаком и иметь те же данные, доступные на другом устройстве iOS или в приложении Mac, тогда я думаю, что iCloud может быть именно тем, что вы ищете.
Таким образом, возможный сценарий с iCloud может выглядеть следующим образом:
- Ваше приложение с поддержкой iCloud установлено на двух iPad
- На обоих iPad вы вошли в свою учетную запись iCloud (это должно совпадать, поскольку iCloud привязан к указанному Apple ID
- Когда ваше приложение сохраняет некоторые данные на
iPad1
, они автоматически синхронизируются с облаком
- В то же время эти данные загружаются в
iPad2
(который должен иметь подключение к Интернету), пока ваше приложение еще не запущено. Это возможно только с iCloud
- Когда вы сейчас запустите свое приложение на
iPad2
(даже если оно сейчас не в сети), у вас будут текущие данные, доступные в вашем приложении.
Однако, если вы работаете со своим собственным серверным бэкэндом и, возможно, нуждаетесь в большем контроле над данными на сервере, iCloud может (пока) не соответствовать вашим потребностям. Возможно, вы захотите проверить документацию или пример кода для iCloud: iCloud для разработчиков (требуется учетная запись Apple Developer)
Если вы решили не использовать iCloud, то в настоящее время нет способа синхронизировать данные, пока приложение не запущено.
Edit:
Сценарий без iCloud может выглядеть следующим образом:
- Вы вводите данные в
iPad1
в автономном режиме и устанавливаете значок на количество несинхронизированных элементов
- Позже у вас есть подключение к Интернету, поэтому вы запускаете приложение, и элементы могут быть синхронизированы с вашим сервером.
- Ваш сервер хранит вновь поступившие записи и теперь может отправить Push-уведомление в ваше приложение, установленное на
iPad2
, сообщающее пользователю, что на сервере n
новые записи.
- Из этого уведомления пользователь теперь может решить открыть приложение, а новые элементы могут быть загружены в
iPad2
.
- Если пользователь отклоняет уведомление, то никакие данные не загружаются, пока он не запустит ваше приложение в следующий раз.