1

myClassCalculate には次のメソッドがあるため、クラス名は 1 つです。

- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {

NSLog(@"Accelerometer is called");

}

でオブジェを作っています

    - (void)applicationDidFinishLaunching:(UIApplication *)application {    


    // Override point for customization after app launch
       myObject = [[myClassCalculate alloc] init];

アプリがバックグラウンドになると、これが欲しい

    - (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {

このメソッドがアプリのバックグラウンドで呼び出されるようにするにはどうすればよいですか

ありがとう

4

3 に答える 3

8

バックグラウンドでの実行が許可されているのは、VOIP、オーディオ、およびナビゲーション アプリのみです。したがって、アプリがこれらのいずれにも当てはまらない場合、アプリは中断され、イベントを受け取りません。

バックグラウンドの詳細:アプリの状態とマルチタスク

アプリでサポートされているバックグラウンド タスクの宣言

一部のタイプのバックグラウンド実行のサポートは、それらを使用するアプリによって事前に宣言する必要があります。アプリは、Info.plist ファイルを使用してサービスのサポートを宣言します。UIBackgroundModes キーを Info.plist ファイルに追加し、その値を次の文字列の 1 つ以上を含む配列に設定します。

audio— アプリは、バックグラウンドでユーザーに可聴コンテンツを再生します。(このコンテンツには、AirPlay を使用したスト​​リーミング オーディオまたはビデオ コンテンツが含まれます。)

location— アプリは、バックグラウンドで実行中であっても、ユーザーに自分の位置を知らせ続けます。

voip— アプリは、ユーザーがインターネット接続を使用して電話をかける機能を提供します。

newsstand-content— このアプリは、バックグラウンドで雑誌や新聞のコンテンツをダウンロードして処理する Newsstand アプリです。

external-accessory— アプリは、定期的なスケジュールでアップデートを配信する必要があるハードウェア アクセサリで動作します。

于 2011-11-17T13:42:12.623 に答える
2

今年のWWDCで、彼らは加速度計の更新がバックグラウンドで観察される可能性があると言ったが、それを行う方法がわからない。iOS5だけだと思います。

バックグラウンドタスクを実行するには、UIBackgroundModesキーのinfo.plistにそれらを追加する必要があります。現在利用できるものは次のとおりです。

オーディオアプリケーションは、バックグラウンドで可聴コンテンツを再生します。

ロケーションアプリケーションは、ロケーションベースの情報をユーザーに提供し、この機能を実装するには、(大幅なロケーション変更サービスではなく)標準のロケーションサービスを使用する必要があります。

voipアプリケーションはVoice-over-IPサービスを提供します。このキーを持つアプリケーションは、システムの起動後に自動的に起動されるため、アプリケーションはVoIPサービスを再確立できます。このキーを持つアプリケーションは、バックグラウンドオーディオを再生することもできます。

newsstand-contentアプリケーションは、Newsstand Kitフレームワークを使用してバックグラウンドで最近ダウンロードされたコンテンツを処理するため、ユーザーが必要なときにコンテンツを準備できます。この値は、iOS5.0以降でサポートされています。

外部アクセサリアプリケーションは、定期的にデータを配信するアクセサリと通信します。

plistに場所を配置するか、[UIApplication beginBackgroundTaskWithHandler:]を使用してみてください。この値は、iOS5.0以降でサポートされています。

于 2011-11-17T13:45:17.710 に答える
0

アプリがバックグラウンドに入ると、このメソッドが呼び出されますonUserLeaveHint()

于 2013-03-11T12:41:51.463 に答える