Iphone 我可以在应用程序再次激活后重新启动它吗?

Iphone 我可以在应用程序再次激活后重新启动它吗?,iphone,objective-c,ios,Iphone,Objective C,Ios,我有一个在coredata数据库中存储数据的应用程序。当应用程序启动时,我从web服务将数据保存到db。问题是,人们可以将他们的应用程序保留在后台,甚至数周,并且可能会看到不再有效的数据。我想重新初始化整个应用程序,一旦它来自后台(一种重启,如果你愿意的话),因为我有多个标签。这可以做到吗?你不需要每次进入前台都重新启动应用程序。您可以通过将其添加到项目的info.plist 添加新行并选择“应用程序不在后台运行”(或键入“UIApplicationExitsOnSuspend”),然后切换复选

我有一个在coredata数据库中存储数据的应用程序。当应用程序启动时,我从web服务将数据保存到db。问题是,人们可以将他们的应用程序保留在后台,甚至数周,并且可能会看到不再有效的数据。我想重新初始化整个应用程序,一旦它来自后台(一种重启,如果你愿意的话),因为我有多个标签。这可以做到吗?

你不需要每次进入前台都重新启动应用程序。您可以通过将其添加到项目的
info.plist

添加新行并选择“应用程序不在后台运行”(或键入“UIApplicationExitsOnSuspend”),然后切换复选框


编辑:(多亏了)最好检查一下它上次下载数据是否已经很久了,如果是这样的话,请重新下载数据。只有当你有很好的理由这样做时,你才应该禁用“多任务处理”。情况并非如此。

您不应该刷新UI吗?核心数据有大量的通知以跟上上下文中的更改,例如
NSManagedObjectContextObjectsDidChangeNotification
,其中还包含所有更新/删除/插入。只需在更新数据库之前开始观察它,就可以看到是否发生了任何更改

无需重新启动即可重新加载UI,所有回调都在那里


因此,不要在
ApplicationIDFinishLaunching中使用选项更新数据:
ApplicationIDBecomeActive:
中进行更新,并根据需要使用核心数据通知更新UI。

当然,您可以在应用程序委托中检查数据的有效性,例如在
-(void)ApplicationIDBecomeActive:(UIApplication*)应用程序
无法强制应用程序重新启动;即使它肯定会违反苹果的HIGyeah,我还是意外地提前发送了我的评论——请看我的编辑。不允许强制关闭你的应用程序,因为苹果认为这看起来像是一次崩溃。作为记录,只有当你有很好的理由不支持多任务处理时,你才应该这样做。我怀疑,只要让他的应用程序重新下载数据并重新保存到数据库中(如果上次下载时间足够长的话),OP就会得到更好的服务。