17

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

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
}

よろしく、サム。

4

3 に答える 3

54

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

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

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

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

于 2012-03-01T00:01:23.417 に答える
4

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

  • Swift:.Active| Objective-C:UIApplicationStateActive

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

iOS4.0以降で利用できます。

  • Swift:.Inactive| Objective-C:UIApplicationStateInactive

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

iOS4.0以降で利用できます。

  • Swift:.Background| Objective-C:UIApplicationStateBackground

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

iOS4.0以降で利用できます。

于 2016-03-18T17:57:06.430 に答える
1

いくつかの例:

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

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

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

于 2016-10-12T14:35:11.850 に答える