アプリのさまざまな状態についての私の理解を明確にするためにあなたの助けが必要です。私の解釈を述べるつもりですが、遠慮なく訂正してください。
1)アプリが起動され、フォアグラウンドで実行されます:state = UIApplicationStateActive
2)ユーザーがホームボタンを押します:state = UIApplicationStateBackground(????)。
Debug stmt in my app shows it to be Active
3)ユーザーがホームをダブルタップしてアプリを強制終了します:state = UIApplicationStateInactive
ケース2の値が実際にアクティブである場合、値はいつバックグラウンドに設定されますか?
私のロケーションベースのアプリは、この値に依存してユーザーに適切なアクションを実行します。
if ( ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) ||
([UIApplication sharedApplication].applicationState == UIApplicationStateInactive) ) {
// isInBackground = YES;
// ------ UI not available
}
else {
// isInBackground = NO;
// ------ UI is available
}
よろしく、サム。
ユーザーがアプリアイコンをタップすると、アプリは一時的にIApplicationStateInactiveの遷移状態を経て、IApplicationStateActiveになります。これは、アプリがユーザーに表示する準備ができる場所です。
アプリが開いているとき、アプリケーションの状態はIApplicationStateActiveです。
ユーザーがホームボタンを押してスプリングボード(ホーム画面)に戻った場合、またはアプリケーションが電話などによって中断された場合、アプリケーションの状態はIApplicationStateInactiveに戻ります。
アプリのアプリケーション状態がIApplicationStateBackgroundになるには、アプリケーションはバックグラウンドプロセスに登録する必要があります。位置情報サービスをバックグラウンドで処理する方法を調べてください。
Appleのドキュメント: IApplicationState定数リファレンス
.Active
| Objective-C:UIApplicationStateActive
アプリはフォアグラウンドで実行されており、現在イベントを受信しています。
iOS 4.0以降で利用可能です。
.Inactive
| Objective-C:UIApplicationStateInactive
アプリはフォアグラウンドで実行されていますが、イベントを受信していません。これは、中断の結果として、またはアプリがバックグラウンドとの間で移行しているために発生する可能性があります。
iOS 4.0以降で利用可能です。
.Background
| Objective-C:UIApplicationStateBackground
アプリはバックグラウンドで実行されています。
iOS 4.0以降で利用可能です。
いくつかの例:
UIApplicationStateActive
-アプリはフォアグラウンドで実行されています。シンプル。
UIApplicationStateInactive
--例アプリはバックグラウンドにあり、プッシュ通知(遷移atm)を介して開いています。または、コントロール/通知センターがアプリの上に表示されます。あなたはそれを見ると、前景にあります。
UIApplicationStateBackground
-アプリはバックグラウンドにありますが、まだ実行中です。 例音楽を再生します。次に、これにはしばらく時間がかかる場合がありますが(バックグラウンドで実行しているプロセスによって異なります)、ある時点でアプリが強制終了されます。最小化されたアプリの間にアプリのスナップショットとアイコンが表示されますが、アプリは最初に再起動されます。