我已经开始使用计步器,它的运行情况还不错。我做了一个微调,可以告诉我锻炼时间,并且可以完美地跟踪“活动类型”。计步器将在后台自动更新,但是微调器不会。我知道我必须为applicationDidEnterBackground使用通知。我可以找到从应用程序进入后台到现在为止已经花费了多少时间,所以我可以改变时间。
我的问题是:我怎么知道那时候有多少时间是在走动和跑步? 因为这将为所有活动腾出时间。有人知道解决方案吗?
答案 0 :(得分:0)
设法解决问题。每次触发此功能都意味着用户有活动:
//START GETTING UPDATES
private func startUpdating() {
if CMMotionActivityManager.isActivityAvailable() {
startTrackingActivityType()
}
if CMPedometer.isStepCountingAvailable() {
startCountingSteps()
}
}
在此函数startCountingSteps()中,我放置了一个数组,如果步数大于1,则该数组每次触发时都会追加一个项目,每秒。意思是走路还是跑步。
我以秒为单位保存了用户进入后台的时间,并在用户再次打开应用程序时获得了当前时间。当前秒数+ array.count =当前经过的锻炼时间。