質問

アプリにマルチタスクを実装する予定です。それを行うための多くの方法をここで見ることができます AppDelegate のように applicationWillResignActive, applicationDidEnterBackground, applicationWillEnterForeground, ...

しかし....これらを使用する方法も、ViewController に含まれていない理由もわかりません。彼らが何のためにここにいるのかも。

つまり :アプリがバックグラウンドで起動すると、ユーザーがどのビューにいるのかわかりません。アプリがフォアグラウンドになったときに、たとえばビューを更新するために何をすべきか、何を呼び出すことができるかをどうやって知ることができるでしょうか?

これらのメソッドが各ビューコントローラーのどこにあるかは理解できたでしょうが、ここでは、それらが具体的に何に使用できるのかがわかりません...

これらのメソッドに物事を実装する方法を理解するのを手伝ってもらえますか?

役に立ちましたか?

解決

各オブジェクトは UIApplicationDidEnterBackgroundNotification アプリがバックグラウンドになったときに通知します。したがって、アプリがバックグラウンドになったときにコードを実行するには、必要な場所でその通知を聞くだけです。

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

リスナーを聞く必要がなくなったら、忘れずにリスナーを解放してください。

[[NSNotificationCenter defaultCenter] removeObserver:self];

そして何よりも、次の通知を使用して同じようにプレイできます。

  • UIApplicationDidEnterBackgroundNotification
  • UIApplicationWillEnterForegroundNotification
  • UIApplicationWillResignActiveNotification
  • UIApplicationDidBecomeActiveNotification

他のヒント

iOSは「デリゲート」デザインパターンを採用しているため、これらはどのView Controllerにも含まれていません。このパターンでは、必要に応じてメソッドがクラス(この場合はアプリケーションのApp Delegate)で確実に起動します。

学習プロセスとして、NSLogをこれらのメソッドに入れて、いつ起動されるかを確認してみませんか? ジェネラコディセタグプレ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top