2010-10-28 3 views
3

Je dois conserver un NSThread ou un NSTimer lorsque mon application iPhone passe en mode d'arrière-plan. C'est possible ? J'ai permis aux modes de fond dans info.plist et ouvert ReadStream et WriteStream comme suit ... (J'utilise UDP)NSTimer ou NSThread en mode arrière-plan d'iOs 4

CFReadStreamSetProperty (ReadStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);

CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 

Mais quand ma demande va à fond et état verrouillé, NSThread ou NSTimer ne demande pas. Alors s'il vous plaît me suggérer comment réaliser le filetage de fond dans l'état de verrouillage de l'arrière-plan de l'iPhone?

Répondre

1

Je me le demande aussi.

Je souhaite mettre à jour mon objet CLLocation (emplacement actuel) toutes les cinq minutes. Le seul moyen que je connaisse est de faire cela avec NSTimer.

Quel est votre conseil si ce n'est pas possible?

+1

La seule issue semble être startMonitoringSignificantLocationChanges. –

1

Au lieu de utilisez UILocalNotification qui peut déclencher des notifications à la fois lorsque l'application est en arrière-plan et au premier plan.

1

Pour certaines applications (audio, localisation, voip), Apple permet background execution sur les appareils pris en charge.

La prise en charge de certains types d'exécution en arrière-plan doit être déclarée à l'avance par l'application qui les utilise. Une application déclare ce support en incluant la clé UIBackgroundModes dans son fichier Info.plist. Sa valeur est un tableau qui contient une ou plusieurs chaînes avec les valeurs suivantes:

audio 
location 
voip