在后台上传大文件(服务在应用关闭时重新启动)

时间:2014-01-02 20:55:38

标签: android service upload large-files large-file-upload

我想上传大文件(~10 - 100Mb wifi或移动网络),但在后台,因为用户可能会离开应用程序,稍后系统将关闭应用程序(如果不是enoguh内存)我创建了一个为这种情况服务,但我的问题是,当我杀死应用程序服务重新启动和上传再次开始。我没有解决方案就发现了同样的问题:

keeping background service alive after user exit app

My service is restarted each time the application is closed

所以它不起作用,但解决方案是什么? youtube app ????

2 个答案:

答案 0 :(得分:2)

如果您担心服务被杀的可能性,您应该通过startForeground()方法使用前台服务。

来自Service Lifecycle Docs

  
      
  • 已启动的服务可以使用startForeground(int,Notification)API将服务置于前台状态,系统认为该服务是用户主动了解的内容,因此在内存不足时不能进行查杀。 (从理论上讲,服务在当前前台应用程序的极端内存压力下被杀死仍然是可能的,但实际上这不应该是一个问题。)
  •   

答案 1 :(得分:-1)

您是否可以控制服务器?这似乎就像:

Uploading big files over HTTP

谷歌搜索提出了Gears项目的提案:

https://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal

如果您可以使用允许Ranged PUT的服务器/插件/模块,这是您最好的选择,否则您可能需要自己动手“分块”...根据您的工具和知识,可能无论如何,这是最好的选择,你可以调整它以针对特定的移动条件进行优化。