【问题标题】:Save Any Unsaved PFObject Even User Terminate the App保存任何未保存的 PFObject,即使用户终止应用程序
【发布时间】:2015-06-18 05:20:11
【问题描述】:

我正在创建一个社交网络应用程序,用户可以在其中创建群组、发布图片、更新图片。等等

我遇到的问题是,有时,在将数据保存到 Parse 的过程中,用户可以终止应用程序。

我想知道这个问题是否有任何解决方法?无论如何我可以检索任何未保存的 PFObjects 并保存它们吗?

【问题讨论】:

  • 为什么不将数据保存在 AppDelegate 的applicationWillTerminate 中?
  • @pranav applicationWillTerminate 只给出 5 秒。虽然它可能需要更长的时间,因为它将数据上传到 Parse
  • 在这种情况下,您可能需要使用NSURLSession。即使系统杀死您的应用程序,它也会继续在后台上传。但是,如果用户强制退出您的应用,它将被取消。

标签: ios swift parse-platform


【解决方案1】:

saveEventually 够用吗?

优点是如果用户当前没有网络连接,saveEventually 会将更新存储在设备上,直到重新建立网络连接。如果您的应用在连接恢复之前关闭,Parse 将在下次打开应用时重试。

PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"];
gameScore[@"score"] = @1337;
gameScore[@"playerName"] = @"Sean Plott";
gameScore[@"cheatMode"] = @NO;
[gameScore saveEventually];

或者您可以声明您的应用支持background tasks,这样当您的应用不在前台时,您仍然可以上传(或下载)数据。

【讨论】:

  • 我在发帖之前尝试了 saveEventually。 SaveEventually 不能解决问题。我试图上传一个 pfobject 并立即终止它。 SaveEventually 没有帮助,在应用重新启动后它不会再次尝试@iforests
  • 即使用户强制终止应用程序,后台任务也能正常工作吗?
  • 没有。这不会发生。 Android 可以使用服务,但不能使用 iOS。如果在应用重新启动后 saveEventually 没有同步数据,则可能是 Parse SDK 中的一个错误,或者您只是太快地终止了应用。
  • 其实我已经下载了其他几个应用程序。并在我更新个人资料图片后立即终止它。只是一瞬间。但是当我重新启动应用程序时,他们仍然设法重新上传了图片。可能是什么秘密。
  • 嗯,你需要做的是将新数据保存在本地,并在有互联网连接时尝试与远程服务器同步数据。我认为这正是 saveEventually 所做的,但如果它不起作用,也许你可以尝试结合 parse.com/docs/ios/guide#local-datastore 和 save 运算符。
猜你喜欢
  • 2023-04-03
  • 1970-01-01
  • 2014-05-31
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-18
  • 1970-01-01
相关资源
最近更新 更多