我是iPhone开发人员的新手...我正在构建一个从本地sqlite3数据库加载数据的应用程序
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
当我点击iPhone按钮并将其放在背景中然后我回想起它我以同样的方式看到(正常)应用程序我离开它。我想做的是,当它出现在foregroud中时,重新加载数据就像从头开始调用一样。
这是正确的方法吗?
提前致谢 角
答案 0 :(得分:62)
所以在App Delegate类中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
只会在您第一次进入应用时调用。然后它会调用- (void)applicationDidBecomeActive:(UIApplication *)application
。
如果您的iphone iOS为4.0或更高版本,当用户点击主页按钮时,它将首先调用- (void)applicationWillResignActive:(UIApplication *)application
,然后调用- (void)applicationDidEnterBackground:(UIApplication *)application
。
然后应用程序将在后台运行,直到用户将其终止。当用户再次输入应用时,它将首先调用- (void)applicationWillEnterForeground:(UIApplication *)application
,然后调用- (void)applicationDidBecomeActive:(UIApplication *)application
。
与您的问题相关,您应该致电applicationWillEnterForeground:
或applicationDidBecomeActive:
重新加载您的数据。虽然在xcode对这些方法的评论中,Apple建议使用applicationDidBecomeActive:
重新启动暂停的任务和/或更新用户界面;在applicationWillEnterForeground:
中,您可以撤消在输入背景时所做的更改。
因此,为了便于查看,我为每个方法添加了一个数字标记。这是要调用的方法。
0 application:(UIApplication *)application didFinishLaunchingWithOptions:
1 applicationDidBecomeActive:
2 applicationWillResignActive:
3 applicationDidEnterBackground:
4 applicationWillEnterForeground:
首先进入应用程序:调用0,然后调用1;
点击主页按钮:拨打2,然后拨打3;
双击主页按钮(多任务处理):拨打2;
如果用户选择其他应用或再次点击主页按钮:拨打3;
如果用户再次按下主页按钮:拨打1;
再次输入应用:拨打4,然后拨打1;
答案 1 :(得分:13)
- (void)applicationDidBecomeActive:(UIApplication *)application {
}
重新加载应用程序委托的上述功能中的数据,以便在应用程序到达前台时刷新数据。
答案 2 :(得分:4)
当iOS通知它应该在后台运行时,你可以exit()
你的应用程序:
- (void)applicationDidEnterBackground:(UIApplication *)application {
exit(0);
}
答案 3 :(得分:3)
我认为这是UIApplication的代表:
- (void)applicationWillEnterForeground:(UIApplication *)application
在iOS 4.0及更高版本中,此方法是 被称为过渡的一部分 活跃状态的背景。 您可以使用此方法撤消许多 你对你的改变 申请进入 背景。对此方法的调用是 不约而同地打电话给 applicationDidBecomeActive:方法, 然后从中移动应用程序 非活动状态。