我想上传大文件(~10 - 100Mb wifi 或移动网络),但在后台,因为用户可能会离开应用程序,稍后系统将关闭应用程序(如果不是 enoguh 内存)我为此创建了一个服务情况,但我的问题是,当我终止应用程序时,服务重新启动并重新开始上传。我发现同样的问题没有解决方案:
所以它不起作用,但解决方案是什么?youtube 应用程序如何???
我想上传大文件(~10 - 100Mb wifi 或移动网络),但在后台,因为用户可能会离开应用程序,稍后系统将关闭应用程序(如果不是 enoguh 内存)我为此创建了一个服务情况,但我的问题是,当我终止应用程序时,服务重新启动并重新开始上传。我发现同样的问题没有解决方案:
所以它不起作用,但解决方案是什么?youtube 应用程序如何???
startForeground()
如果您担心服务被杀死的可能性,您应该通过该方法使用前台服务。
从服务生命周期文档:
- 启动的服务可以使用 startForeground(int, Notification) API 将服务置于前台状态,系统认为它是用户主动意识到的,因此在内存不足时不适合杀死。(理论上,在当前前台应用程序的极端内存压力下,服务仍然可能被杀死,但实际上这不应该是一个问题。)
你对服务器有控制权吗?这看起来就像:
谷歌搜索提出了 Gears 项目的提案:
https://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal
如果您可以使用允许远程 PUT 的服务器/插件/模块,那是您最好的选择,否则您可能必须自己滚动“分块”......根据您的工具和知识,这可能是最好的无论如何,您可以对其进行调整以针对您的特定移动条件进行优化。