应用程序进入前台时重新加载应用程序数据?
我是新的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:方法,然后将应用程序从不活动状态移动到活动状态。