我有一个项目,它执行以下操作: - 在启动时(或按下刷新按钮),它会检查 wcf 服务中的新数据(4 个表,大约 1600-2000 个表条目总和)。- 该服务为每个表生成 cvs 文件并压缩数据(gzip) - android 应用程序下载压缩文件并提取其中的数据 - 之后,它处理 csv 文件 整个过程大约需要 2 秒(包括下载)在较旧的设备(1 核,1GHz)上。
我建议你,为你的任务使用服务在后台为你完成工作,如果我是你,我会使用 cvs 而不是 JSON,因为 JSON(据我所知)在你使用时会更慢有很多数据。
在服务中运行信息处理和插入数据库有一些重要的优势: - 如果用户按下主页键,服务可以在后台继续工作 - 您仍然可以向用户显示进度对话框以让他/她知道您的应用程序正在运行 - android 可以在不同的进程上运行服务,所以如果您的主应用程序完全被杀死(由用户或系统在需要其他内存时),所以这样你仍然可以做你的数据库的东西。- 在不同进程中运行的缺点是 - 那是另一个虚拟机,因此它消耗更多内存 - 可能会导致数据库访问出现问题,但由于您只会在第一次运行时使用它来填充数据库,所以没关系您可以阅读更多相关信息这里(安卓:进程):http://developer.android.com/guide/topics/manifest/service-element.html#proc
总结
- 使用 cvs 而不是 json - 使用服务来填充数据库 - 如果您使用不同的流程服务(从表中选择 count(*) 并检查它是否与db 中的预期行数)。