0

私の(iPhone)アプリケーションでは、アプリケーションがアクティブである時間を追跡しています。特定の値(たとえば15分)を超えると、ログインビューがアラートビューとともにユーザーに表示されます。アプリケーションがバックグラウンドに長時間存在する場合、この動作は同様です。その後、アプリが再びアクティブになると、アラートビューがユーザーに表示されます。

ただし、問題は、アプリケーションが非常に長い間バックグラウンドにあり、アプリケーションが再びアクティブになると、AlertViewがユーザーに表示されないことです。セッションがタイムアウトしたかどうかを通知するためにNSNotificationsを使用しています。

基本的な流れはこんな感じ

アプリを起動する->アプリをバックグラウンドに置く->applicationDidBecomeActive:->セッションがタイムアウトしたかどうかを確認する->ログインビューを表示する->ログアウト通知を投稿する

受信者はアラートビューを表示します。私は、loginviewだけでなくアプリデリゲート内にも受信ロジックを配置しました。ただし、どちらのシナリオでも、alertviewは長時間バックグラウンドにあるかどうかは表示されません。

私の質問は、少し遅れて通知を受け取ることができますか?ログインビューが表示されたら受け取りたいです。

4

1 に答える 1

1

receive notifications はアプリのデリゲート メソッドであり、実装されている場所で受信します。ただし、アプリケーションがアクティブかどうかを確認するために、さまざまなフラグを設定できます。

たとえば、アプリケーションでは resigactive になります

フラグを設定する isActive = no;

受信通知チェックで isActive フラグ hasReceivedNotification= YES を設定します。データをどこかに保存する

アプリケーションでアクティブになったかどうかを確認し、アプリケーションがアクティブで、リモート通知を受信したかどうかを確認します。3 番目のフラグを設定する shouldShowAlertOnLoginView = YES; // 通知データを表示する場合

loginview チェックで appDelegate.shouldShowAlertOnLoginView == YES

次に、データを含むアラートを表示します

于 2012-05-03T11:32:04.887 に答える