Android中背景上传器的最佳方法

Gen*_* S. 6 android

问题:

我想编写一个流程,允许用户使用设备拍照,然后将这些照片上传到云中的某个监听器.用户不必做任何事情来启动上传,后台监听器只会查看该文件夹,只要它找到文件中的文件就会上传并删除它们.

两个问题:1)即使在用户不再拍照之后如何保持程序在后台运行(如果他们重新启动设备以使其唤醒并完成上传,如果仍然存在)

2)假设连接是不稳定的(如常),如何验证给定图像是否已完成上传,如果没有,则重新提交.

我不需要任何代码示例,我只是想就实现这个问题的最佳策略提出意见.

我打算使用Apache commons,只是上传到PHP,但不确定存在什么类型的错误检查以考虑连接丢弃中间文件.

TIA.

jjb*_*jjb 8

基本上已经在几个平台上多次编写了这个应用程序,我可以告诉你,这不是一个微不足道的努力.要解决第一个问题,您可以创建一个位于后台并执行上传的服务.为了让它自动启动,您可以声明它在清单中接收到意图android.intent.action.BOOT_COMPLETED(您需要权限android.permission.RECEIVE_BOOT_COMPLETED才能使用它).如果你要听标准相机应用程序写的东西,你可以使用registerContentObserver来听新东西 - 小心,手机可以有不止一个地方存放照片!

对于第二个问题,让您的Web服务返回有关上载完成的信息,客户可以使用该信息来决定重试.

  • "要解决第一个问题,您可以创建一个位于后台并执行上传的服务." - 但是,你绝对肯定不想设计这样的服务应该永远存在.使用`IntentService`,以便上传发生在后台线程(必需)上,以便在没有更多上传要做时服务自动关闭.使用`startService()`将命令发送到`IntentService`以使其启动上载. (2认同)