应用程序进入前台时重新加载应用程序数据?

我是新的iPhone开发…我正在build立一个应用程序,从本地sqlite3数据库加载数据

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

当我点击iPhonebutton,并把它放在背景中,然后我记得它我以同样的方式看到(如常)应用程序。 我想要做的是,当它在foregroud,重新加载数据,就像它从头调用。

哪种方法是正确的?

在此先感谢c。

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

重新加载应用程序委托的上述function中的数据,以便在应用程序到达前台时刷新数据。

所以在应用程序委托类- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions只会在您第一次进入- (void)applicationDidBecomeActive:(UIApplication *)application时调用- (void)applicationDidBecomeActive:(UIApplication *)application然后它会调用- (void)applicationDidBecomeActive:(UIApplication *)application

如果你的iphone是4.0或更高版本,当用户点击主页button时,它将首先调用- (void)applicationWillResignActive:(UIApplication *)application ,然后- (void)applicationDidEnterBackground:(UIApplication *)application

然后,应用程序将在后台运行,直到用户杀死它。 当用户再次进入应用程序时,它将首先调用- (void)applicationWillEnterForeground:(UIApplication *)application ,然后- (void)applicationDidBecomeActive:(UIApplication *)application

因此,与您的问题相关,您应该调用applicationWillEnterForeground:applicationDidBecomeActive:重新加载您的数据。 尽pipe在xcode对这些方法的评论中,苹果build议使用applicationDidBecomeActive:重启暂停的任务和/或更新用户界面; 而在applicationWillEnterForeground: ,您可以撤消您在进入后台进行的更改。


所以为了更容易看到,我把一个数字标签给每个方法。 这是当被调用的方法。

 0 application:(UIApplication *)application didFinishLaunchingWithOptions: 1 applicationDidBecomeActive: 2 applicationWillResignActive: 3 applicationDidEnterBackground: 4 applicationWillEnterForeground: 
  • 首先进入应用程序:呼叫0,然后1;

  • 打回家的button:拨打2,然后3;

  • 双击主页button(多任务):拨打2;

    • 如果用户select另一个应用程序或再次按主页button:调用3;

    • 如果用户再次双击主页button:调用1;

  • 再次input应用程序:呼叫4,然后1;

当iOS通知它应该在后台运行时,你可以exit()你的应用程序,如下所示:

 - (void)applicationDidEnterBackground:(UIApplication *)application { exit(0); } 

我认为这是UIApplication的代表:

 - (void)applicationWillEnterForeground:(UIApplication *)application 

在iOS 4.0和更高版本中,这种方法被称为从后台到活动状态转换的一部分。 您可以使用此方法撤消进入后台后对应用程序所做的许多更改。 对这个方法的调用总是接着调用applicationDidBecomeActive:方法,然后将应用程序从不活动状态移动到活动状态。