gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:35:23 24 4
gpt4 key购买 nike

我是 iPhone 开发新手。我正在构建一个从本地 sqlite3 数据库加载数据的应用程序

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

当我点击 iPhone 按钮并将其置于后台,然后我想起它时,我看到(正常)该应用程序的方式与我离开它时的方式相同。我想做的是,当它出现在前台时,重新加载数据,就好像它是从头开始调用的一样。

正确的做法是什么?
提前致谢。

最佳答案

所以在 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.

然后该应用程序将在后台运行,直到用户终止它。当用户再次进入app时,会先调用- (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;

    • 如果用户选择另一个应用程序或再次按下主页按钮:调用 3;

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

  • 再次进入app:先调用4,再调用1;

关于ios - 当应用程序进入前台时重新加载应用程序数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com