CMMotionActivityManager startActivityUpdates keep обнаруживает активность пользователя после вызова stopActivityUpdates () - PullRequest
0 голосов
/ 02 июля 2018

Я занимаюсь разработкой приложения для получения активности пользователя с использованием 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];
 }
...