【问题标题】:Is a lightweight database migration running with an app in background?轻量级数据库迁移是否与后台应用程序一起运行?
【发布时间】:2013-07-22 11:25:59
【问题描述】:

如果应用在 iOS5/iOS6 的后台运行,轻量级数据库迁移是否仍在运行? 如果我开始迁移,然后打开另一个应用程序,迁移还会继续吗?

2。 手机锁定在初始屏幕时是否也在运行?

谢谢

【问题讨论】:

  • 我不明白这个问题。据我所知和经验,当您使用迁移选项调用 addPersistentStoreWithType:... 或显式调用 migrateStoreFromURL:... 时,迁移运行(同步)
  • @MartinR 是的,但是当你运行应用程序、运行那行代码、打开另一个应用程序或关闭设备屏幕时会发生什么,是在后台运行迁移?
  • 好的,现在我明白你的问题了!
  • @MartinR 有没有办法禁用设备睡眠模式?所以 iOS 永远不会回到锁定屏幕来中断迁移?

标签: ios core-data core-data-migration


【解决方案1】:

不,当应用处于后台时,不会运行 Core Data 迁移。

原因:当用户更新您的应用程序时,它将被关闭然后更新。然后在更新后首次启动应用程序时运行数据库迁移。

编辑:那么当用户在迁移过程中点击主页按钮时会发生什么?我猜 Core Data 会停止并回滚到有效状态(版本),并且可能会在用户再次打开应用程序后重新启动。但我不太确定。

编辑 2: 考虑到这一点,我几乎可以肯定我的建议是正确的。在迁移过程中,Core Data 堆栈并未最终初始化,当用户单击 Home-Button 时它将停止。因此,当用户返回应用程序并且应用程序第一次访问NSManagedObjectContext 时,必须重新构建核心数据堆栈。但为了 100% 确定,请在模拟器和设备中尝试一下 - 应该更省力。

【讨论】:

  • 是的,但是如果我打开新更新的应用程序,迁移开始,然后我锁定了 iPhone 的屏幕(屏幕关闭),会发生什么情况。迁移是否仍在后台运行?或者,例如,如果我打开另一个应用程序。
  • ps。有没有办法禁用设备睡眠模式?这样 iOS 就永远不会回到锁定屏幕来中断迁移?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-26
  • 2012-08-16
相关资源
最近更新 更多