我正在设计一个需要执行以下步骤的android应用程序:
- 用户按下按钮或以其他方式指示“同步数据”。
- 同步过程将使用 REST Web 服务将数据移入和移出服务器。
- 数据将本地存储在 sqlite 数据库中。
- 同步过程应向 UI 提供状态更新/消息
- 不应允许用户在同步过程中徘徊到应用程序的其他部分并做更多的工作。
第一次运行同步过程可能需要 10-20 分钟。初始同步后,传输和存储的数据将减少,我预计该过程需要 1-2 分钟或更短的时间。
我一直在阅读有关 androidAsyncTask
和使用服务的各种示例的大量信息……但我并不完全理解选择一种设计而不是另一种设计的设计注意事项和权衡取舍。我目前使用 AsyncTask 将我的演示项目存根。观看(大部分)开发 Android REST 客户端应用程序后: http ://code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html#我对此处描述的设计模式感到困惑感觉过于复杂,也许是因为我只是“不明白”。
我来自 java、spring、web 和桌面应用程序背景。在手持设备方面进行思考和设计对我来说是相当新鲜的。(更改屏幕布局时会发生什么?当我运行同步时电话响起会发生什么?)退后两步,如果初始同步将是一个如此漫长的运行过程,有没有更好的方法我要考虑问题->解决方案、用户体验、用户对手机上运行的应用程序的期望?
很想听听一些更有经验的安卓开发者的意见,他们已经在这些问题上苦苦挣扎。