所以在 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:
先进入app:调用0,再调用1;
按下主页按钮:呼叫 2,然后呼叫 3;
双击主页按钮(多任务):调用2;
再次进入app:先调用4,再调用1;