OK, j'ai eu à travailler correctement et expérimenté un peu avec elle donc, voici la réponse. C'est ce que vous devez faire pour obtenir votre application d'être invoquée lors de la traversée d'un phare limitrophes de la région après l'application a été résilié (en supposant que votre application fonctionne correctement lors de l'avant-plan):
- Vous devez mettre en œuvre un CLLocation délégué à l'intérieur de votre AppDelegate.m module. Ce délégué est ce qui est invoquée par iOS donc, si vous n'avez pas le CLLocation délégué code dans AppDelegate.m, vous ne serez pas en mesure de répondre à iOS lorsque votre application a été résilié. C'est ce que Apple AirLocate exemple d'application.
Ainsi, à l'intérieur AppDelegate.m vous avez besoin de la suite (vous avez également besoin de créer un lien CoreLocation.h):
{
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// This location manager will be used to notify the user of region state transitions when the app has been previously terminated.
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
return YES;
}
- À L'Intérieur De AppDelegate.m, vous avez besoin pour mettre en œuvre les locationManager didDetermineState méthode, comme ceci:
{
locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)stateforRegion:(CLRegion *)region{
UILocalNotification *notification = [[UILocalNotification alloc] init];
if(state == CLRegionStateInside)
{
notification.alertBody = [NSString stringWithFormat:@"You are inside region %@", region.identifier];
}
else if(state == CLRegionStateOutside)
{
notification.alertBody = [NSString stringWithFormat:@"You are outside region %@", region.identifier];
}
else
{
return;
}
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];
}
--> Donc, si votre application a été résilié (il doit être exécuté au moins une FOIS), lorsque le dispositif de transitions à travers un phare à la limite que vous êtes suivi, iOS va appeler votre application et appelez le locationManager didDetermineState méthode dans votre AppDelegate.m module. À l'intérieur de cette méthode, vous pourrez alors mettre en place et d'appeler presentLocalNotificationNow. Si votre application est en arrière-plan lorsque cela se produit, iOS présentera la notification sur l'écran même s'il est verrouillé. L'utilisateur aura alors à invoquer l'application pour plus d'informations.
Je suis assez sûr que la pression sur la mémoire n'a rien à voir avec cela. Aussi, la mise en notifyEntryStateOnDisplay n'a rien à faire de cette question. Réglage notifyEntryStateOnDisplay est utilisé uniquement lorsque l'utilisateur tourne sur iOS écran de l'appareil (c'est à dire les hits "à la maison" ou le bouton en haut à gauche). Si l'utilisateur ne ce et notifyEntryStateOnDisplay est VRAI, ET l'appareil est à l'INTÉRIEUR de la balise de la région, vous êtes suivi, vous recevez une notification sur l'écran à ce moment. Si cette propriété est définie sur FALSE, vous n'avez pas.
Bien sûr, vous devez être en cours d'exécution iOS 7.1 pour que ça fonctionne correctement.