首页 > 解决方案 > CMMotionActivityManager startActivityUpdates 保持在调用 stopActivityUpdates() 后检测用户活动

问题描述

我正在开发一个应用程序来使用 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];
 }

标签: iosobjective-ccore-motion

解决方案


推荐阅读