这可能是一个简单的问题,但我已经在圈子里跑了几个小时试图找出最好的方法来做到这一点。
基本上我的应用程序允许用户创建一个帖子条目,然后将其保存到核心数据中,然后发布到Web服务,如果在此期间Internet可用,则在后台线程中完成向Web服务的发布用户继续工作。
记录标记为SendToWebService = 1
我现在的问题是,用户可以查看他们在应用程序中创建的条目列表,如果尚未发生,则选择将其重新发布到Web服务,但是这会导致重复的帖子作为之前的后台线程仍在努力发布条目,因为它正在上传图片或大的东西。
有关如何最好地处理此事的任何建议?
由于
答案 0 :(得分:1)
我建议你的核心数据对象有3个上传标志。
0 => upload failed,
1 => currently uploading,
2 => upload complete.
用户选择上传帖子后,将标志设置为当前上传,在这种情况下,您将更新按钮设置为微调器或其他内容。完成后,无论是失败还是完成,然后根据标志将上传按钮更改为完成或重新上传。
这似乎是明显的答案,希望我能正确理解你的问题。
答案 1 :(得分:1)
如何做到这一点,为你当前正在发送的帖子设置SendToWebService=1
,如果它通过保留1或删除条目(取决于你的实现)但由于某种原因如果它无法发布,设置你的SendToWebService back to 0
。因此,当邮件正在发送时,它似乎就像发送一样。
但是如果你想对功能更加透明,可以创建另一个Boolean called InProgress
或者其他内容,然后在发送请求时将其设置为1并且不要让用户发布具有InProgress True的帖子并且你可以显示哪些是在UI中发送的,如果发布,请转动SendToWebService=1
,如果没有,请转动InProgress again to 0
希望有所帮助
答案 2 :(得分:0)
如果用户正在查看数据库中的条目列表,而不是最简单的方法:
通过在db中保存上载状态,即使用户更改屏幕或关闭应用程序,状态也会保持不变。