#ios #objective-c #cllocationmanager #location-services
#iOS #objective-c #cllocationmanager #службы определения местоположения
Вопрос:
В моем приложении включена работа служб определения местоположения в фоновом режиме, но я предлагаю этот вариант пользователям: я имею в виду, у меня есть параметр настроек в моем приложении, который позволяет пользователям продолжать отслеживать местоположения в фоновом режиме или нет. Если пользователь включает эту опцию в моем приложении и переходит в фоновый режим, а оказавшись в фоновом режиме, отключает службы определения местоположения в приложении «Настройки» устройства и снова их включает, я вижу, что ей нужно снова активировать приложение, чтобы перезапустить прослушивание местоположений в моем приложении.
Есть ли какой-либо способ перезапустить его в фоновом режиме? Мне нужно, чтобы это работало в iOS 6.0
Заранее спасибо
Ответ №1:
попробуйте
public override void DidEnterBackground (UIApplication application) {
int taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {});
new Task ( () => {
DoWork();
//UIApplication.SharedApplication.EndBackgroundTask(taskID);
}).Start();
}
Проверить поддержку многозадачности, чтобы поведение приложения можно было изменить для компенсации отсутствующей функциональности:
- (BOOL)multitaskingAvailable
{
UIDevice *device = [UIDevice currentDevice];
BOOL areBackgroundTasksSupported = NO;
if ([device respondsToSelector:
@selector(isMultitaskingSupported)])
areBackgroundTasksSupported = device.multitaskingSupported;
return areBackgroundTasksSupported;
}
Комментарии:
1. только в ios 7 вы можете получать удаленные уведомления