Sto cercando un modo per ottenere un aggiornamento della posizione in background ogni n minuti nella mia applicazione iOS. Sto usando iOS 4.3 e la soluzione dovrebbe funzionare per iPhone senza jailbreak.
Ho provato / considerato le seguenti opzioni:
CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges
: Funziona in background come previsto, in base alle proprietà configurate, ma non sembra possibile forzarlo per aggiornare la posizione ogni n minutiNSTimer
: Funziona quando l'app è in esecuzione in primo piano ma non sembra essere progettata per attività in background- Notifiche locali: le notifiche locali possono essere programmate ogni n minuti, ma non è possibile eseguire un codice per ottenere la posizione corrente (senza che l'utente debba avviare l'app tramite la notifica). Anche questo approccio non sembra essere un approccio pulito in quanto non è questo ciò per cui le notifiche dovrebbero essere utilizzate.
UIApplication:beginBackgroundTaskWithExpirationHandler
: Per quanto ho capito, questo dovrebbe essere usato per finire un po 'di lavoro in background (anche limitato nel tempo) quando un'app viene spostata in background piuttosto che implementare processi in background "di lunga durata".
Come posso implementare questi aggiornamenti regolari della posizione in background?