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

时间:2011-01-14 19:37:56

标签: android

问题:

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

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

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

我不需要任何代码示例,我只想就实施此方法的最佳策略提出意见。

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

TIA。

2 个答案:

答案 0 :(得分:8)

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

对于第二个问题,请让您的网络服务返回有关上传完成情况的信息,客户可以使用该信息来决定重试。

答案 1 :(得分:4)

  

我想写一个会有的过程   允许用户用照片拍照   设备和那些照片然后是   上传到一些听众   云。

请自行启动拍照(以便知道何时上传)或创建ACTION_SEND Activity以插入相机应用的共享选项,以便用户可以上传方式。

  

用户不应该这样做   任何启动上传的事情,a   背景听众只会看   文件夹,只要找到   它中的文件会上传它们   删除它们。

请不要。

Android用户的一个主要抱怨是使用这种技术编写的应用程序 - 一些“后台监听器”占用RAM并且99.999%的时间没有提供任何值。核心Android团队被迫修改操作系统,以防止开发人员以这种方式搞砸用户的手机。较新版本的Android将在一段时间后终止您的“后台监听器”。用户可以使用“任务杀手”或“设置”应用中的“管理服务”屏幕,尽快终止“背景监听器”。

请自行启动拍照(以便知道何时上传)或创建ACTION_SEND Activity以插入相机应用的共享选项,以便用户可以上传方式。