web-dev-qa-db-ja.com

UIApplicationStateについての説明が必要

アプリのさまざまな状態についての私の理解を明確にするためにあなたの助けが必要です。私の解釈を述べるつもりですが、遠慮なく訂正してください。

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
}

よろしく、サム。

17
Sam

ユーザーがアプリアイコンをタップすると、アプリは一時的にIApplicationStateInactiveの遷移状態を経て、IApplicationStateActiveになります。これは、アプリがユーザーに表示する準備ができる場所です。

アプリが開いているとき、アプリケーションの状態はIApplicationStateActiveです。

ユーザーがホームボタンを押してスプリングボード(ホーム画面)に戻った場合、またはアプリケーションが電話などによって中断された場合、アプリケーションの状態はIApplicationStateInactiveに戻ります。

アプリのアプリケーション状態がIApplicationStateBackgroundになるには、アプリケーションはバックグラウンドプロセスに登録する必要があります。位置情報サービスをバックグラウンドで処理する方法を調べてください。

54
forgot

Appleのドキュメント: IApplicationState定数リファレンス

  • スイフト:.Active| Objective-C:UIApplicationStateActive

アプリはフォアグラウンドで実行されており、現在イベントを受信して​​います。

iOS 4.0以降で利用可能です。

  • スイフト:.Inactive| Objective-C:UIApplicationStateInactive

アプリはフォアグラウンドで実行されていますが、イベントを受信して​​いません。これは、中断の結果として、またはアプリがバックグラウンドとの間で移行しているために発生する可能性があります。

iOS 4.0以降で利用可能です。

  • スイフト:.Background| Objective-C:UIApplicationStateBackground

アプリはバックグラウンドで実行されています。

iOS 4.0以降で利用可能です。

4
Wagner Sales

いくつかの例:

UIApplicationStateActive-アプリはフォアグラウンドで実行されています。シンプル。

UIApplicationStateInactive --アプリはバックグラウンドにあり、プッシュ通知(遷移atm)を介して開いています。または、コントロール/通知センターがアプリの上に表示されます。あなたはそれを見ると、前景にあります。

UIApplicationStateBackground-アプリはバックグラウンドにありますが、まだ実行中です。 音楽を再生します。次に、これにはしばらく時間がかかる場合がありますが(バックグラウンドで実行しているプロセスによって異なります)、ある時点でアプリが強制終了されます。最小化されたアプリの間にアプリのスナップショットとアイコンが表示されますが、アプリは最初に再起動されます。

1
Jakub Truhlář