2013-12-04 2 views
2

Я создаю приложение, которое нужно проверять на наличие данных один раз в день (полночь). Я знаю, что в iOS7 есть режим фоновой выборки, но из того, что я знаю, нет способа заставить его обновляться в заданный интервал времени. Есть ли способ сделать это и передать экзамен Appstore?iOS 7 - Обновить данные Каждые 24 часа

Благодарим за любые предложения.

+0

жаль конце предложения, но и нужно, чтобы проверить http://stackoverflow.com/questions/ 26628020/perform-action-if-date-change/26628319 # 26628319 – iphonemaclover

ответ

6

Существует не реальный способ сделать это, так как он требует, чтобы приложение работало в фоновом режиме. фоновые режимы работы ограничены аудио, VOIP, местоположениями и аксессуарами.

Что вы можете сделать, это просто проверить, когда вы последний раз обновляете данные в приложении, когда пользователь запускает приложение. Таким образом, вы будете обновлять данные только тогда, когда пользователь запустит ваше приложение, а также будет использовать только данные, когда пользователь действительно использует приложение.

Фоновая выборка будет работать только в том случае, если пользователь часто запускает ваше приложение, и iOS позволит вам приложению делать фоновое извлечение. iOS решит, когда вам разрешено выполнять фоновое обновление, и вы мало влияете на интервал.

UIApplicationBackgroundFetchIntervalMinimum

Самый маленький fetchinterval поддерживается системой.

+0

Извините, но в iOS 7 появился новый API fetch. Который может быть активирован. – Greg

+0

Да, я знаю об этом и редактировал свой ответ. Но вопрос заключается в обновлении в установленное время. Это невозможно. – rckoenes

+0

Спасибо за ваш ответ. Теперь я делаю именно то, что вы сказали. Когда пользователь запускает приложение, он проверяет последнее время обновления, и если он более 24 часов назад, он обновляется. Приложение отправляет вам несколько уведомлений на основе загруженных данных. Вот почему было бы здорово открывать приложение каждый день, чтобы загружать данные, но автоматически обновлять их, а затем просто отправлять уведомления. – adam

3

Возможно, это не совсем то, что вы ожидаете, но в iOS 7 есть функциональность, которая позволяет вам получать данные каждый определенный промежуток времени. В этом случае iOS разумно планирует события фоновой выборки на основе использования вашего приложения, и это помогает экономить время автономной работы. Так что это не будет работать каждые 24 часа, но я думаю, вы можете прочитать данные, и если он был обновлен, обновите приложение, если не проигнорируйте его. В вашем Xcode 5 -> Target -> Возможность включить фоновые режимы (выбор фона). И в применении: didFinishLaunchingWithOptions добавить:

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]; 

Это метод, который будет называться:

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
{ 
} 
+0

Да, я знаю об этом методе, и я, вероятно, буду его использовать. Но сейчас я ищу способ обновления данных на основе временного интервала. – adam

+1

Я думаю, что если вы хотите, чтобы пользователь открыл приложение и получил свежие данные, это единственный способ сделать это. Это не 100%, что данные будут соответствовать датам, но вы также можете запускать проверку каждый раз, когда пользователь открывает приложение, и если он устарел, извлеките его. – Greg

Смежные вопросы