1

iOS では、アプリがバックグラウンドで実行されている場合、すべてのタイマーが一時停止することを読みました。beginBackgroundTaskWithExpirationHandlerまた、 ( like so )を使用して bg でタスクを実行できることも読みました。

私が達成しようとしているのは、3分ごとに1回メソッドを呼び出し、最初のメソッドの固定時間前に別のメソッドを呼び出すことです。私はこれNSTimerを可能にする方法で繰り返されるものの中でこれを行うことができました. 正常に動作しますが、アプリがバックグラウンドにあるときは明らかに無効 (または一時停止) です。上記の理由から推測できます。

タイマーを実行する方法があるかどうか、または少なくとも特定の時間後に何かを呼び出す方法があるかどうかを知っている人はいますか?

4

1 に答える 1

2

基本的に、バックグラウンドでアクティブに実行し続けたい場合は、次の要件のいずれかを満たす必要があります。アップルのドキュメントから:

長時間実行されるバックグラウンド タスクの実装

実装するのにより多くの実行時間を必要とするタスクについては、特定のアクセス許可を要求して、一時停止せずにバックグラウンドで実行する必要があります。iOS では、特定の種類のアプリのみがバックグラウンドで実行できます。

  • 音楽プレーヤー アプリなど、バックグラウンドでユーザーに可聴コンテンツを再生するアプリ
  • ナビゲーション アプリなど、常にユーザーに現在地を知らせるアプリ
  • Voice over Internet Protocol (VoIP) をサポートするアプリ
  • 新しいコンテンツをダウンロードして処理する必要がある Newsstand アプリ
  • 外部アクセサリから定期的にアップデートを受信するアプリ

これらのサービスを実装するアプリは、サポートするサービスを宣言し、システム フレームワークを使用してそれらのサービスの関連する側面を実装する必要があります。サービスを宣言すると、使用するサービスをシステムに認識させることができますが、アプリケーションの中断を実際に防止するのはシステム フレームワークである場合もあります。

http://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW24

于 2012-07-25T15:48:23.417 に答える