9

アプリがフォアグラウンドにあるとき、アクティブな状態か非アクティブな状態かを知る必要がありますか?

アプリが非アクティブ状態の場合、ログアウト プロトコルを起動して現在のユーザーのセッションを破棄する必要があります。

- (void)applicationWillResignActive:(UIApplication *)application
{
    NSLog(@"App is not active logout success");
}

アプリが非アクティブな状態にあることを教えてくれる appDelegate メソッドはありますか。コード例はどれも役に立ちます。

「NSNotificationCenter」で作業する必要がある場合は、どのクラスにコードを追加でき、誰がオブザーバーになりますか。

4

2 に答える 2

8

状態をテストするには、次のようにします。

[[UIApplication sharedApplication] applicationState]==UIApplicationStateInactive

また

[[UIApplication sharedApplication] applicationState]==UIApplicationStateActive

通知を受け取りたい場合は、次のことができます。

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(yourselector:)
                                                 name:UIApplicationDidBecomeActiveNotification object:nil];

また

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(yourselector:)
                                                 name:UIApplicationDidEnterBackgroundNotification object:nil];

他の通知も行うことができます ( https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/から):

UIApplicationDidBecomeActiveNotification UIApplicationDidChangeStatusBarFrameNotification UIApplicationDidChangeStatusBarOrientationNotification UIApplicationDidEnterBackgroundNotification UIApplicationDidFinishLaunchingNotification UIApplicationDidReceiveMemoryWarningNotification UIApplicationProtectedDataDidBecomeAvailable UIApplicationProtectedDataWillBecomeUnavailable UIApplicationSignificantTimeChangeNotification UIApplicationUserDidTakeScreenshotNotification UIApplicationWillChangeStatusBarOrientationNotification UIApplicationWillChangeStatusBarFrameNotification UIApplicationWillEnterForegroundNotification UIApplicationWillResignActiveNotification UIApplicationWillTerminateNotification UIContentSizeCategoryDidChangeNotification

アプリ デリゲートを使用する場合は、次を使用できます。

- (void)applicationDidEnterBackground:(UIApplication *)application {}

また

- (void)applicationDidBecomeActive:(UIApplication *)application {}
于 2015-01-22T06:41:43.030 に答える