3

場所のデリゲートが場所の更新を受け取るたびにローカル通知を発生させる startMonitoringForRegion を使用して、iPhone 4 用の iOS でアプリを作成しようとしています。

電話が起動している (画面が点灯している) 限り、アプリケーションは正常に動作し、通知を送信しますが、電話をスリープ状態にすると (画面が黒くなります)、電話を起動するまで通知を受け取りません。ホームボタンを押すことで

info.plist に「必要なバックグラウンド モード」-「アプリが位置情報の更新を登録」キーを追加しようとしましたが、意味がありません...

CLLocationManager デリゲートは AppDelegate として設定されます。

デバイスがスリープ中でも位置情報の更新を登録するにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

0

アプリケーションが閉じられた後、CLLocationManager インスタンスの割り当てが解除された可能性があります。

私にとっては、CLLocationManager プロパティとデリゲートをシングルトンに設定して、ロケーション マネージャーのシングルトンを作成します。その後、このメソッドstartMonitoringSignificantLocationChangesを呼び出して、アプリが位置情報の更新を確実に受け取るようにします。アプリが強制終了されても機能します。

アプリが強制終了された場合、アプリのデリゲートdidFinishLaunchingWithOptionsメソッドでロケーション マネージャー シングルトンをインスタンス化する必要があります。

if ([launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey]) {
    //instantiate the singleton here
    NSArray *regions = [[[[LocationManager sharedManager] locationManager] monitoredRegions] allObjects];
}

大幅な位置情報の変更と標準の位置情報サービスの使用の違いについて、ここで詳しく説明します:アプリが実行されていないときの位置情報ベースのプッシュ通知?

于 2013-05-18T09:21:48.547 に答える