Я занимаюсь разработкой приложения для получения активности пользователя с использованием CMMotionActivity. Работает нормально. Я также получаю действия пользователя следующим способом.
CMMotionActivityManager *activityManager = [[CMMotionActivityManager alloc] init];
[activityManager startActivityUpdatesToQueue:[[NSOperationQueue alloc] init] withHandler:
^(CMMotionActivity *activity) {
dispatch_async(dispatch_get_main_queue(), ^{
});
}
];
Но проблема в том, что когда я вызываю следующий метод
[activityManager stopActivityUpdates];
это не остановит обнаружение активности пользователя. Это все еще работает. Можете ли вы сказать мне, почему это происходит?
Обновленный вопрос
Я вызвал обновление активности, вызвав следующий метод.
-(void)StartUserActivityUpdates
{
if ([CMMotionActivityManager isActivityAvailable]) {
activityManager = [[CMMotionActivityManager alloc] init];
[activityManager startActivityUpdatesToQueue:[[NSOperationQueue alloc] init]
withHandler:
^(CMMotionActivity *activity) {
dispatch_async(dispatch_get_main_queue(), ^{
});
}];
}}
Я прекращаю обновление активности, вызывая следующий метод.
-(void)StopActivityUpdates
{
activityManager = [[CMMotionActivityManager alloc] init];
[activityManager stopActivityUpdates];
}