2

这是一个相当普遍的问题,关于应用程序从后台返回时实际发生的情况。我有一个用户告诉我,在打开我超过一天未使用的应用程序时,他仍然会看到与关闭应用程序之前相同的视图(“关闭”是指他只是按下主页按钮)将其发送到后台,不要按住然后点击十字按钮以完全终止应用程序)。

我的印象是,如果一个应用程序在很长一段时间后从后台恢复,它将完全重新加载(显示启动屏幕和所有内容),就像我在没有使用后打开 facebook 或 gmail 应用程序的情况一样一段时间。

所以我的问题是,我是否必须在我的应用程序被发送到后台后的一段时间内进行检查,并在超过某个阈值时重置所有内容,或者应该由 iOS 本身处理......当然,如果用户将我的应用程序发送到后台并在 2 分钟后返回,我不想刷新

4

2 回答 2

2

您可能必须通过设置时间戳在您的 appdelegate 方法中处理它。由于 iPhone 中启用了多任务处理,因此它将再次从同一屏幕开始。一个应用程序可以在后台运行很长时间,直到用户决定终止该应用程序。

一些委托方法是

- (void)applicationWillResignActive:(UIApplication *)iApplication;
- (void)applicationDidEnterBackground:(UIApplication *)iApplication;
- (void)applicationWillEnterForeground:(UIApplication *)iApplication;
- (void)applicationDidBecomeActive:(UIApplication *)iApplication;

如果要禁用多任务处理,可以通过UIApplicationExistsOnSuspend 在应用程序 plist 中设置一个键来实现。但这会使应用程序在用户按下主页按钮时立即退出。

于 2012-10-12T05:44:27.743 回答
1

是否应在后台一段时间后刷新您的应用程序的决定完全取决于您和您的应用程序的需求。一个应用程序可以在后台运行数周而不会被操作系统杀死。或者它可能在进入后台后几秒钟内被杀死。这完全取决于其他正在运行的应用程序所需的资源。

例如,如果您希望应用程序中的逻辑使其在 24 小时后重新启动,则由您编写代码来处理此问题。当应用程序进入后台时保存时间戳。当它返回到前台时,将当前时间与保存的时间戳进行比较。如果时间已经过去,您需要更新 UI 以反映您想要向用户显示的任何所需状态。

于 2012-10-12T05:49:21.230 回答