2012-05-19 9 views
5

Kullanıcıların gün içinde veri girecekleri bir müşteri için bir uygulama yazıyorum, daha sonra gece belirli bir noktada (örneğin, gece yarısı) o gün sunucuya yüklenmelidir.Arka planda çalışırken çalışmak için bir iOS uygulama görevi planlayın

Bu nedenle, uygulama arka planda olsa bile, uygulamamda gece yarısında çalışacak bir yöntem zamanlamam gerekiyor. Bu yöntem daha sonra toplanan verileri sunucuyla senkronize eder ve tüm değişiklikleri indirir.

Bunu başarmak için, uygulamayı her zaman arka planda çalışacak şekilde ayarlamam gerektiğini (yani 10 dakikadan uzun süre) ve ardından belirli bir süre sonra çalışacak şekilde zamanlamayı planladığımı hayal ediyorum. Bunu performSelector: withDelay: kullanarak mı yapıyorum? Veya uygulama daha arka planda olacağından daha sağlam bir şeye ihtiyacım var mı?

Teşekkürler çocuklar!

+0

üzerinde

Bilgi Bunun için herhangi bir çözüm aldınız mı? –

cevap

0

Uygulamanızın veya yapmaya çalıştığınız şeyin Apple'ın uzun süre çalışan arka plan görevi için gerekli olduğunu düşünmüyorum. Bu belgedeki "Uzun süren arka plan görevleri gerçekleştirme" bölümüne bakın. Apple.

+0

Bu iyi bir nokta - ama aslında uygulama sürekli konum izleme için hak kazanabilir. Gece yarısı veri senkronizasyonunun nedeni, gün boyunca kullanıcının İnternet bağlantısı dışında kalmasıdır. Bu yüzden belki de en iyi seçenek, büyük yer değişikliklerini takip eder ve her değişiklikte internet bağlantısına bakılır. Kullanıcının yeterince güçlü bir sinyali varsa, senkronizasyon oradan başlayabilir ve ardından bir sonraki güne kadar veri senkronizasyonunu kapatabilir. Yardım için teşekkürler! – theDuncs

2

UILocalNotifications. O olayın gerçekleşmesini planlayabilir ve ardından kullanıcının bir şeyi işlediğini (veya yapmamasını) bildirmesi için bir rozet simgesi ayarlayabilirsiniz. Bu HERE

+0

Kullanıcının veri senkronizasyonu ile ilgili herhangi bir şey bilmesini istemiyorum, bu yüzden ideal olarak (a) gece yarısı için yerel bir bildirim planlayacağım, daha sonra (b) bildirim kodunun çalıştığı gece yarısında veri senkronizasyonunu gerçekleştirebiliyorum, sonra yükseltmeyeceğim Ekrandaki herhangi bir bildirim. Bu mümkün mü? Veya yerel bildirimleri kullanmak için ekranda bir uyarı mı yükseltmek zorundayım? – theDuncs

+0

Yardımlarınız için teşekkürler, bu arada! Çok takdir edildi. – theDuncs

+0

Kullanıcıya görsel bir gösterge olmadan yapmaya çalıştığınız şeyi yapabileceğinizi düşünüyorum. –