私はiOSとswiftで自分の位置を送信しようとしていますが、しばらくするとアプリケーションが停止して動作を停止します。IOSでCLLocationが停止する
class Location:NSObject, CLLocationManagerDelegate {
private var locationManager = CLLocationManager()
private var errorLocation: Bool = false
private var stuffLocation: CLLocation!
var outSocket: OutSocket!
var timer: NSTimer!
var stuff: Stuff!
override init() {
super.init()
outSocket = OutSocket()
setupLocation()
}
func setupLocation() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.activityType = CLActivityType.Fitness
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if !errorLocation {
errorLocation = true
locationManager.allowDeferredLocationUpdatesUntilTraveled(10, timeout: 50)
stuffLocation = locations[0]
if timer == nil {
timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: #selector(Location.sendDataToServer), userInfo: nil, repeats: true)
}
}
}
}
func locationManager(manager: CLLocationManager, didFinishDeferredUpdatesWithError error: NSError?) {
errorLocation = false
}
誰でも似たようなをやったりAPPの停止がそれを理解するだろう防ぐ方法を知っている場合、これは、私のコードです。
アプリケーションはGPS情報の受信を停止します。これは、各イベント更新GPSがそのデータをTCPソケット用に制御するためです。私は、iOSがバックグラウンドアプリケーションを停止していることを読んだが、それについてはあまり知らない。 – Jarboox
アプリケーション自体を終了すると、アプリケーションは停止します。例えば、私がFacebookに行くとき、または単にデバイスをロックするとき。 – Jarboox
閉じるに要する時間は約3〜5時間です。時には1時間にメゾス。しかし、私がdispositovoをMacに接続した場合、これは起こりません。 – Jarboox