web-dev-qa-db-ja.com

iOSで通知を受信したときにアプリがフォアグラウンドで実行されているかどうかを確認する

どのアプリがフォアグラウンドで実行されているか、またはアプリからのローカル通知が表示されたときにホーム画面が表示されるかどうかを確認する方法を探しています。たとえば、ホームスクリーンまたは他の誰かのアプリにある場合、私はさまざまなアクションを持ちたいです。私は処理されたpidを使用しようとしましたが、pidはアプリが起動したときに生成され、アプリが最後に使用されたときではありません。何か案が?ありがとう

31
user1117453

プッシュ通知ドキュメント で説明されているように、 [[UIApplication sharedApplication] applicationState] アプリがフォアグラウンド、非アクティブ(表示されているが、WiFiセレクターのようなダイアログが前面にある)かバックグラウンドかを判断する通知を受け取ったとき。

59
DarkDust

他の人が利用できるコピー貼り付けコードを用意するだけです。

if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
    //App is in foreground. Act on it.
}
14

Swift 5バージョン:

let isForeground = UIApplication.shared.applicationState == .active
9
JanApotheker