我的应用程序动态创建一些文件并通过一个对象跟踪这些文件。在某些时候,对象被传递给 IntentService。 IntentService 的目的是
- 创建一个 XML 文件以包含有关其他文件的数据
- 将 XML 文件和其他文件添加到 ZIP 文件中
- 将 ZIP 文件上传到 WCF 服务
ZIP 文件必须在某个时候上传。事情可能会发生; WCF 服务可能已关闭等等。
在保证 ZIP 文件将被上传方面,我有哪些选择?我目前的计划是将一些信息保存到 SQLite 数据库中,并在每次应用程序启动时检查它并从那里获取。不确定这是个好主意,或者是否有更好的方法来处理这个问题。
此外,我是 Android 新手,但如果我理解正确的话,如果 IntentService 在完成之前关闭,它会在某个时候自动重新创建相同的 Intent 等,对吗?否则我也必须考虑到这一点。
最佳答案
你应该看看通过使用同步适配器来使用内置的同步服务 看看这个 http://naked-code.blogspot.co.uk/2011/05/revenge-of-syncadapter-synchronizing.html
观看嵌入该页面的 Google I/O 视频。
您应该注意,Virgil 建议使用同步适配器以外的任何东西都是完全错误的。 SyncAdapters 很容易实现,上面的链接也演示了如何设置。
SyncAdapter 会处理重试尝试,并会选择最佳时机为您的手机同步数据。您可以安排同步适配器,也可以请求立即同步,只要适合您的需要即可。
名称和密码不会被客户经理保存。他们会;您的网站或 oauth2 服务需要,但客户经理存储 token 而不是凭据。如果 token 需要刷新,则会向用户显示客户经理登录屏幕,然后运行您的代码以获取新的授权 token 。
参见 http://developer.android.com/training/id-auth/identify.html了解更多详情
关于Android:如何保证文件上传到WCF服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15881250/