2016-07-20 6 views
0

私は、のバックグラウンドモードで実行し、Wi-Fi接続をチェックして決定を下すために少なくとも1分ごとに実行する機能を持っています。 locationManagerデリゲートを使用していますので、NSTimerをバックグラウンドで実行できます。しかし、ロケーションマネージャは大量のバッテリ電源を消費しています。このアプリはリンゴリリース用ではありません。しかし、私は場所マネージャーのためのより効率的な設定を探していますので、それは空腹になったり、他の良いアイデアになることはありませんか? 現在の設定は問題ありませんが、ロケーションマネージャの自動ポーズを有効にしてから、機能のアップデートが遅れてしまいます。私は2つのデリゲートメソッド(didEnterRegionとdidExitRegion)を使用する前に、それらはより消費電力が高く、正確ではありませんでした。LocationManager delegate( "Cheat way")を使用したバックグラウンドモードのNSTimer SWIFT

ここ
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     self.timer = NSTimer.scheduledTimerWithTimeInterval(45, target: self, selector: #selector(self.checkNetworkSSID), userInfo: nil, repeats: true) 
     manager.stopMonitoringSignificantLocationChanges() 
     manager.stopUpdatingLocation() 
    } 

は私が持っているものです。私はここで私は私のデリゲート機能に持っているものである可能なチュートリアルのトンを読んで、スタックオーバーフローに関連する他の記事をチェックしますが、私は私のproblm を解決するために役立つだろう何かを発見していません私のviewDidLoadAppDelegate

manager = CLLocationManager() 
     manager?.delegate = self 
     manager?.requestWhenInUseAuthorization() 
     manager?.startUpdatingLocation() 
     manager?.desiredAccuracy = kCLLocationAccuracyThreeKilometers 
     manager?.pausesLocationUpdatesAutomatically = true 
     manager?.activityType = CLActivityType.Fitness 

答えて

0

にバックグラウンドで場所を取得するため、あなたの コードにこのコードを呼び出すと、必ずあなたの中NSLocationAlwaysUsageDescriptionを追加作成する必要がありますr info.plist

 locationManager = CLLocationManager() 
     locationManager.delegate = self 
     locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers 
     locationManager.pausesLocationUpdatesAutomatically = false 
     locationManager.startMonitoringSignificantLocationChanges() 
     if #available(iOS 9.0, *) { 
      locationManager.allowsBackgroundLocationUpdates = true 
     } 
     locationManager.requestAlwaysAuthorization() 
     locationManager.startUpdatingLocation() 
+0

私はplistにNSLocationAlwaysUsageDescriptionを持っています。私はそれらを使用しないので、場所の変更は本当に気にしません、私はNSTimerを実行し続けることができるように、私はデリゲートを使用しています。どのようにstartMonitoringSignificantLocationChanges()については本当に何ですか? –

関連する問題