簡體   English   中英

iOS上的CoreLocation僅在后台監視位置更改一定時間?

[英]CoreLocation on iOS to only monitor location changes in the background for a set amount of time?

我目前正在編寫一個iOS應用,該應用需要在后台監視用戶的位置約30分鍾。 為此,我使用的是CoreLocation API提供的重要更改位置服務 ,並調用startSignificantChangeUpdate,還實現了locationManager:didUpdateToLocation:fromLocation:

問題出在30分鍾之后,我想關閉“ 重大更改位置服務” ,但似乎找不到解決方法。 我在locationManager:didUpdateToLocation:fromLocation:有一些代碼,該代碼檢查位置是否已發布30分鍾以上,如果已發布,則將其關閉。 問題是,如果用戶相對不動並且應用程序處於后台,則30分鍾后,位置服務將不會關閉,例如,如果用戶回到家中並睡着了,直到早上才再次打開應用程序。

我嘗試使用NSTimer類,但是一旦將應用程序置於后台,該類似乎停止運行。

我已經在應用程序激活時進行了30分鍾的檢查,但是再次提醒您,如果用戶長時間不打開應用程序,則定位服務可能會整夜運行。

除此之外,我對如何停止服務一無所知。

謝謝

沒有真正好的方法為后台服務運行計時器。 好消息是最后一個位置保存了一個時間戳,您可以將其與最新更新進行比較。 可能不是近似時間,但是您應該能夠在30分鍾后的最后一次更新后禁用位置服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM