【问题标题】:Core Motion Pedometer Save Timer Data when in BackgroundCore Motion 计步器在后台保存计时器数据
【发布时间】:2019-02-01 12:03:45
【问题描述】:

我已经开始使用计步器了,它运行良好。我做了一个计时器,它会告诉我锻炼时间,它可以完美地跟踪活动类型。计步器会在后台自动更新,但是计时器不会。我知道我必须为 applicationDidEnterBackground 使用通知。我可以找出从应用程序进入后台到现在已经过去了多少时间,这样我就可以及时做出改变。

我的问题是:我怎么知道有多少时间是步行和跑步? 因为它将为所有事件留出时间。有人知道实现这一目标的解决方案吗?

【问题讨论】:

    标签: ios swift3 swift4 core-motion pedometer


    【解决方案1】:

    设法解决了问题。每次触发这个函数就意味着用户有活动:

    //START GETTING UPDATES
    private func startUpdating() {
        if CMMotionActivityManager.isActivityAvailable() {
            startTrackingActivityType()
        }
    
        if CMPedometer.isStepCountingAvailable() {
            startCountingSteps()
        }
    }
    

    在这个函数 startCountingSteps() 中,我放置了一个数组,如果步数大于 1,则每次触发它时,该数组将附加一个项目,每秒。这意味着它要么是步行,要么是跑步。

    当用户进入后台时,我保存了以秒为单位的时间,并在用户再次打开应用程序时获取了当前时间。当前秒数 + array.count = 当前经过的锻炼时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多