我一直在測試新的動作活動管理器API(CMMotionActivityManager
)。我想創建一個應用程序,該應用程序可以在應用程序未在前臺運行時接收和處理來自startActivityUpdatesToQueue
的動作更新。當應用處於前臺時,我會正確接收動作更新(靜止,走路,跑步,汽車,未知),但一旦它進入背景(因此被暫停),動作更新將不再被應用接收。CMMotionActivityManager - 在應用程序被暫停或在後臺時接收動作活動更新
CMMotionActivityManager Class Reference: 「此方法啓動異步跟蹤運動數據,運動活動管理器在指定的隊列上執行處理程序塊,報告當前對設備有效的運動,之後,運動活動管理器只有在動作數據發生變化時才執行處理程序塊 處理程序塊以盡力而爲的方式執行,並且在您的應用程序暫停時不會傳送更新如果在您的應用程序暫停時到達了更新,則會傳送上次更新當您的應用程序暫停時,要獲取所有更新,請使用queryActivityStartingFromDate:toDate:toQueue:withHandler:
方法。「
我想讓我的應用程序在後臺運行並接收運動數據(實時)。目前保持應用程序在後臺運行的唯一方法是使用後臺服務,但「運動更新」不在允許的後臺服務列表中:
App Store Review Guidelines:「多任務應用程序可能只爲其預期使用後臺服務用途:VoIP,音頻播放,位置,任務完成,本地通知等。「 我不想一直有位置更新(GPS)(以節省電池)。如果我通過連續的位置更新進行存儲,但關閉GPS,該應用將被暫停。
請讓我知道如何讓我的應用程序在後臺運行並接收動作活動更新。 必須有辦法做到這一點:我試過Strava應用程序....即使應用程序在後臺,當用戶暫停運行時,它也會關閉GPS。當用戶恢復運行時,它會自動打開GPS(應用程序處於後臺),這可能意味着該應用程序正在後臺運行,即使在GPS關閉時也會主動接收動作活動更新。
預先感謝您!
@Jackson。您是否找到任何解決方案或替代方案? –
@AshokKumarS不是真的,但我認爲下面的答案解釋了它。你需要製作應用程序通過其他方式在後臺運行,然後像平常一樣使用Core Motion。 – Jackson