私は、のバックグラウンドモードで実行し、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 を解決するために役立つだろう何かを発見していません私のviewDidLoadとAppDelegate
manager = CLLocationManager()
manager?.delegate = self
manager?.requestWhenInUseAuthorization()
manager?.startUpdatingLocation()
manager?.desiredAccuracy = kCLLocationAccuracyThreeKilometers
manager?.pausesLocationUpdatesAutomatically = true
manager?.activityType = CLActivityType.Fitness
私はplistにNSLocationAlwaysUsageDescriptionを持っています。私はそれらを使用しないので、場所の変更は本当に気にしません、私はNSTimerを実行し続けることができるように、私はデリゲートを使用しています。どのようにstartMonitoringSignificantLocationChanges()については本当に何ですか? –