2016-12-07 11 views
3

根據Apple的CMMotionManager文檔,「應用程序應該只創建一個CMMotionManager類的實例,該類的多個實例會影響從加速度計接收數據的速率,並且陀螺儀「。CMMotionManager的多個實例,確定更新間隔

我已經創建了一個單例來封裝這個,但我想知道的是我應該如何處理更新間隔。如果經理的每個消費者需要針對設備動態更新具有不同的更新間隔,那麼您如何處理它們?我最初的想法是將其設置爲提供的最快更新間隔,並且在用戶被移除時停止到下一個最快(停止觀察動作更新),但是如果特定的消費者需要設置特定間隔,則可能會導致問題。

有沒有人遇到過這個問題?如果是這樣,你是如何解決它的?

回答

1

我以前在單個應用程序中使用過多個動作管理器,但它不會顯着影響應用程序的性能。但是,如果它影響實時應用程序的行爲/性能,我會將運動管理器設置爲所需頻率最高,但將運動數據以其請求的速率轉發給消費者。

以高頻率請求運動數據對CPU使用率或電池沒有明顯影響,會影響電池CPU /電池使用率的是每次運動更新後執行的後處理量。

資料來源:個人經驗,我正在研究一個正在生產過去5年的應用程序,該應用程序使用設備運動數據預測用戶行爲。

+0

謝謝。多數民衆贊成我最後一起去。我只是想知道如果一個特定的班級需要特定的時間間隔才能正常運行,人們會如何處理它。 – stealthdyno

+0

@stealthdyno Beyonce,「如果你喜歡它,那麼你應該把一個複選標記」 –