【发布时间】:2011-02-08 12:59:04
【问题描述】:
我正在为 Android 开发地图渲染应用程序。地图数据相当大,大约 1.1 Gb。由于 .apk 大小在市场和手机中都有限制,因此建议在应用程序启动时下载它。
这是我现在使用的模式:
1.主要活动(用于渲染地图)检查数据是否可用,如果没有,我开始下载活动
2.下载活动启动本地服务
3. 服务下载 zip 文件并解压地图数据
4.服务向下载活动发送事件和通知
我生成了一项服务,因为整个过程可能需要 30 分钟到几个小时不等,具体取决于电话和网络。
但是我无法确保只有一个程序实例在运行,我尝试了所有的 launchmode 属性组合都没有帮助。
正如您可能理解的那样,运行两个实例会导致下载/解压缩崩溃。
这真是令人沮丧!现在我正在对 sdcard 文件锁定进行一些丑陋的读/写操作,并且它大部分时间都在工作以确保只有一个实例在运行。
我的目标是 Android 1.6 及更高版本。
【问题讨论】:
-
您确定需要向用户手机发送 1.1 Gb 吗?缓冲结果并在需要时发送不是更好的解决方案?
-
离线模式是必需的。
-
假设我有 GPRS (not 3G/Wifi/EDGE) 连接并且想使用你的应用程序,那么你能想象它什么时候能够下载这个巨大的文件吗? . 我建议尝试考虑最坏的条件。
-
感谢您的输入,但在程序说明(市场上)中说明您需要在安装后下载数据。希望广大用户尊重和理解。
标签: android download android-sdcard large-data