0

这可能是一个简单的方法,但我已经绕圈子跑了几个小时,试图找出最好的方法来做到这一点。

本质上,我的应用程序允许用户创建一个帖子条目,然后将其保存到核心数据中,然后如果在此期间 Internet 可用,则发布到 Web 服务是在后台线程中完成的,允许用户继续工作。

记录标记为 SendToWebService = 1

我现在的问题是用户可以查看他们在应用程序中创建的条目列表,如果尚未发生,则选择将其重新发布到 Web 服务,但这会导致重复的帖子,因为之前的后台线程仍在工作在上传图片或其他内容时发布条目。

关于如何最好地处理这个问题的任何建议?

谢谢

4

3 回答 3

1

怎么样,SendToWebService=1为您当前发送的帖子设置,如果它通过,请保留 1 或删除条目(取决于您的实现),但由于某种原因,如果它无法发布,请设置您的SendToWebService back to 0. 因此,当一个帖子正在发送时,它会看起来好像它已发送。

但是,如果您想对该功能更加透明,请创建另一个Boolean called InProgress或其他内容,然后在您发送请求时将其设置为 1,并且不要让用户发布具有 InProgress True 的帖子,您可以显示哪些帖子正在发送在 UI 中也是如此,如果它被发布,请转动您的SendToWebService=1,如果没有,则转动您的InProgress again to 0

希望有帮助

于 2013-08-12T17:30:08.807 回答
1

我建议在您的核心数据对象中设置 3 个用于上传的标志。

   0 => upload failed,
   1 => currently uploading, 
   2 => upload complete.

一旦用户选择上传帖子,将标志设置为当前上传,在这种情况下,您将更新按钮设置为微调器或其他东西。完成后,失败或完成,然后根据标志将上传按钮更改为完成或重新上传。

这似乎是显而易见的答案,希望我能正确理解您的问题。

于 2013-08-12T17:28:26.813 回答
0

如果用户正在查看数据库中的条目列表,那么最简单的方法是:

  1. 当 post 事件发生时,将 post 保存在数据库中作为发送到服务器并启动后台线程。
  2. 当线程完成运行时,检查是否上传失败将数据库中的条目标记为未上传,如果成功则什么都不做。

通过将上传的状态保存在 db 中,即使用户更改屏幕或关闭应用程序,该状态也会保持不变。

于 2013-08-12T17:30:11.177 回答