我有一个应用程序,可以将数据存储在coredata db中。我在启动应用程序时将数据从Web服务保存到数据库。问题是人们可以将应用程序保留在后台甚至数周,并且可能会看到不再有效的数据。我想重新初始化整个应用程序,一旦它来自后台(如果你愿意的话,重新启动)因为我有多个标签。可以这样做吗?
答案 0 :(得分:4)
每次进入前台时都不需要重新启动应用程序。您可以通过将其添加到项目的info.plist
添加新行并选择“应用程序不在后台运行”(或键入“UIApplicationExitsOnSuspend”),然后切换复选框。
编辑:(感谢Kevin Ballard)如果您检查自上次下载数据以来是否已经很长时间了,那么最好重新下载数据。您应该只在有充分理由这样做的情况下禁用“多任务处理”。事实并非如此。
答案 1 :(得分:2)
你不应该刷新用户界面吗? Core Data有很多通知可以跟上上下文中的变化,例如NSManagedObjectContextObjectsDidChangeNotification
,它也包含所有更新/删除/插入。只需在更新数据库之前开始观察它,您就会看到是否发生了任何变化。
无需重新启动以重新加载UI,所有回调都在那里......
因此,不要在applicationDidFinishLaunchingWithOptions:
中更新您的数据,而是在applicationDidBecomeActive:
中执行,并根据需要使用核心数据通知来更新用户界面。