2013-12-13 12 views
7

私のアプリがいつ中断するのか知りたいですか?一定期間アクティブでないか、ユーザーによって終了された状態。 Webソケットを接続する必要があるため、これが必要です。私はアプリがバックグラウンド状態にある間に接続を生かしておきたい。iOS:アプリが一時停止する時期を確認するにはどうすればよいですか?

どうすればよいですか?

おかげ

EDIT:はこれではない重複した質問、他の質問は、アプリがアクティブでなくなったときに約あるしたい、私はアプリが終了している知っていただきたいと思います。

+2

@ dandan78これは、バックグラウンドを入力するためのものです。アプリが停止されたときの通知が必要です。 –

答えて

-1

AppDelegate.mファイルでは、ユーザーがホームボタンを押してアプリケーションがバックグラウンドに移動したときにこのメソッドが呼び出されます(ここでは接続をライブ状態に保つことができますが、バックグラウンドタスク、あなたの接続が永遠に生きることができないので、アプリがバックグラウンドに残っている場合は、プッシュ通知など)の更新のような日にアプリを維持するために他の方法があります。

- (void)applicationWillResignActive:(UIApplication *)application 
{ 
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 
} 

とは、この方法は、時にアプリ呼び出されますが、終了します(マルチタスキングから完全に閉じます)。

- (void)applicationWillTerminate:(UIApplication *)application 
{ 
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 
} 

この方法で接続を処理できます。

+0

申し訳ありませんが、これはうまくいきます。私はこれを試して、それは素晴らしい動作します! –

+9

「中断」は「背景」ではありません。 – Almo

+0

私はこのことについてちょっと混乱しているのでわかりますか?アプリケーションが長い間バックグラウンドにあり、iOSがアプリを殺すと、applicationWillTerminateが呼び出されますか?あなたがバックグラウンドから戻ってくる場合、私はバックグラウンドで10 +分後に再起動されるアプリを持っています。 –

3

また

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(receiveSuspendNotification:) 
              name:UIApplicationWillResignActiveNotification 
              object:nil]; 

- (void) receiveSuspendNotification:(NSNotification*)notif 
{ 
} 

メソッドが呼び出されます通知オブザーバを追加することができますし、必要なタスクを実行することができます。

+0

'NikosM.'でメソッドを使うことができたとき、なぜ通知オブザーバを通知センターに追加するのですか?別の呼び出しを追加して少し冗長ではないようです。 – Popeye

+1

私は、アプリケーションデリゲート以外の何かをやっているなら、よりクリーンなアプローチであることがわかります。それが動作しないため、 – zekel

+0

http://stackoverflow.com/users/980097/popeye 2017年の時点では、アプリがバックグラウンドに移動したときに表示されますが、アプリがバックグラウンドにとどまってから数分後には表示されません。 –

-2

アプリがバックグラウンドで実行中に登録されていない場合、UIApplicationDidEnterBackgroundNotificationを受信すると、アプリはRAMに一時停止されます。

関連する問題