2016-07-08 6 views
0

私は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の停止がそれを理解するだろう防ぐ方法を知っている場合、これは、私のコードです。

+0

アプリケーションはGPS情報の受信を停止します。これは、各イベント更新GPSがそのデータをTCPソケット用に制御するためです。私は、iOSがバックグラウンドアプリケーションを停止していることを読んだが、それについてはあまり知らない。 – Jarboox

+0

アプリケーション自体を終了すると、アプリケーションは停止します。例えば、私がFacebookに行くとき、または単にデバイスをロックするとき。 – Jarboox

+0

閉じるに要する時間は約3〜5時間です。時には1時間にメゾス。しかし、私がdispositovoをMacに接続した場合、これは起こりません。 – Jarboox

答えて

0

アプリがGPS位置情報の更新をバックグラウンドで取得し続けるようにするには、アプリのinfo.plistのUIBackgroundModes配列にエントリを追加する必要があります。その後、ユーザーに許可を求める必要があります。 UIBackgroundModesのXcodeドキュメントで検索してください。具体的にはlocationの値をご覧ください。

また、アプリをアプリストアに送信するときに、アプリがバックグラウンドでGPSを使用できるようにする必要があります。

GPSを常時オンにしておくと急にユーザーのバッテリーを使い切り、座標をアップロードするにはTCPソケットを使い切ることに注意してください。

+0

あなたが言及し、上記のアプリケーションに追加されましたが、なんらかの理由で引き続き逮捕されます。 – Jarboox

関連する問題