Отображение оповещения iPhone из фонового режима при мониторинге пересечения границы региона - PullRequest
1 голос
/ 10 октября 2011

У меня есть вопрос об отображении UIAlertView при работе в фоновом режиме в результате события региона местоположения.Я рассмотрел здесь множество похожих вопросов и загрузил пример Apple Breadcrumb, но он не пытается отображать предупреждения.

Мое приложение переключается на мониторинг регионов непосредственно перед тем, как оно переходит в фоновый режим с этой строкой.:

[self.locMan startMonitoringForRegion:targetRegion desiredAccuracy:100];

Затем я наблюдаю за входом и выходом из региона следующим образом:

-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
NSLog(@"Exited region");

UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Region Boundary Crossed!" 
                                                    message:@"Exited region"
                                                   delegate:self 
                                          cancelButtonTitle:@"Cancel" 
                                          otherButtonTitles:@"Show",nil ]; 

[alertView show];
[alertView release];
}


-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region 
{
NSLog(@"Entered region"); 

UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Region Boundary Crossed!" 
                                                    message:@"Entered region"
                                                   delegate:self 
                                          cancelButtonTitle:@"Cancel" 
                                          otherButtonTitles:@"Show",nil ]; 
[alertView show];
[alertView release];
}

Я запустил это с помощью симулятора, чтобы убедиться, что он правильно переключается на мониторинг региона.Однако на iPhone я не смог увидеть предупреждение при работе в фоновом режиме, но при повторной активации приложения отображаются нужные предупреждения, которые, похоже, стоят в очереди и ждут.

В моем файле info.plist у меня естьустановите «Обязательные фоновые режимы - Элемент 0» на «Регистры приложений для обновления местоположения» и «Необходимые возможности устройства - Элемент 0» на «Location-Services» и «Элемент 1» на «GPS».

Любая помощьвысоко ценится!

1 Ответ

2 голосов
/ 10 октября 2011

UIAlertView не будет работать, когда ваше приложение будет фоновым.Вы должны использовать UILocalNotifications, когда ваше приложение работает в фоновом режиме.

Также имейте в виду, что с необходимой точностью вы действительно быстро разряжаете батарею iPhone.При работе в фоновом режиме для CCLocationManager предусмотрена специальная настройка, которая будет вызываться только при значительных изменениях, которых может быть недостаточно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...