0

「必要なバックグラウンド モード」の下の plist に「位置情報更新用のアプリ登録」を入れたにもかかわらず、iOS アプリが強制終了されることがあります。

- (void)applicationDidEnterBackground:(UIApplication *)application
{
 NSDate *dateEnteredIntoBackground = [NSDate date];

 FSLog(@"*** ENTERING BACKGROUND ***");

 [application beginBackgroundTaskWithExpirationHandler:^{ 

    NSDate *dateOfTermination = [NSDate date];              

}];
}

上記のコードを監視している間、それが追い出されたとき、NSDate オブジェクトは常に 10 分離れています。

ただし、問題をさらに混乱させるために、アプリケーションが終了せずにバックグラウンドで 30 分以上実行されても問題ない場合が多くあります。追加のテストとして、iPhone をファラデー ケージに入れ、ロケーション デリゲートの更新が呼び出されないようにしました (これは、書き込まれたログ ファイルを読み戻すことで確認されます)。したがって、それは除外できるようです。

手がかり/アドバイスはありますか?

ありがとう

カール。

4

1 に答える 1

5

アプリが中断されないようにするには、実際には新しい場所をリクエストする必要があります。一定時間新しい場所をリクエストしないと、iOS はアプリを一時停止します。

回避策として、次のことができます。

  • 新しい場所を継続的にリクエストします (遅くとも有効期限ハンドラーで)
  • 場所が変わるたびに目を覚ます「大幅な変更位置情報サービス」を使用する

詳細については、Apple の公式ドキュメントの「アプリの状態とマルチタスキング」および「アプリの場所を認識させる」を参照してください。

于 2013-04-22T15:52:10.513 に答える