现在的位置: 首页 > 综合 > 正文

applicationWillEnterForeground vs. applicationDidBecomeActive, applicationWillResignActive vs. appli

2014年01月20日 ⁄ 综合 ⁄ 共 1500字 ⁄ 字号 评论关闭

When waking up i.e. relaunching an app (either through springboard, app switching or URL)applicationWillEnterForeground: is
called. It is only executed once when the app becomes ready for use, after being put into the background, while applicationDidBecomeActive: may
be called multiple times after launch. This makes applicationWillEnterForeground: ideal
for setup that needs to occur just once after relaunch.

applicationWillEnterForeground: is
called:

  • when app is relaunched(Notice
    that 
    applicationWillEnterForeground
    will not be called in the first launch.
    )
  • before applicationDidBecomeActive:

applicationDidBecomeActive: is
called:

  • when app is first launched after application:didFinishLaunchingWithOptions:
  • after applicationWillEnterForeground: if
    there's no URL to handle.
  • after application:handleOpenURL: is
    called.
  • after applicationWillResignActive: if
    user ignores interruption like a phone call or SMS.

applicationWillResignActive: is
called:

  • when there is an interruption like a phone call.

    • if user takes call applicationDidEnterBackground: is
      called.
    • if user ignores call applicationDidBecomeActive: is
      called.
  • when the home button is pressed or user switches apps.
  • docs say you should

    • pause ongoing tasks
    • disable timers
    • pause a game
    • reduce OpenGL frame rates

applicationDidEnterBackground: is
called:

  • after applicationWillResignActive:
  • docs say you should:

    • release shared resources
    • save user data
    • invalidate timers
    • save app state so you can restore it if app is terminated.
    • disable UI updates
  • you have 5 seconds to do what you need to and return the method

    • if you dont return within ~5 seconds the app is terminated.
    • you can ask for more time with beginBackgroundTaskWithExpirationHandler:

抱歉!评论已关闭.