在Android中,哪个更适合上传大文件?单独的过程或服务

时间:2013-04-18 07:43:59

标签: android network-programming android-asynctask android-service

当应用程序需要上传许多大文件时,这将是一个更好的解决方案:

1)在单独的流程(即远程服务)上执行此操作?

2)使用单独的线程(或AsyncTask)?

对此有明确的答案吗?

顺便提一下,应用程序一直在上传内容 - 通常是非常小的数据块。 它偶尔需要发送大文件,所以我想用一个单独的机制然后我正在使用的机制。 (BTW对于小块我使用的是一个工作得很好的单个任务线程)

我也理解AsyncTask对于一次性操作是好的,并且线程对于许多操作更好

3 个答案:

答案 0 :(得分:0)

使用异步任务总是更好,因为Async Task只是一个线程,因为你要上传多个文件,所以多线程是必要的,以避免任何异常

答案 1 :(得分:0)

无需创建全新流程。后台服务是最佳选择。将您的活动绑定到您的服务,并在您想要发送数据时激活它。最好在服务中使用线程/ AsyncTask进行发送(是的,即使在服务中也需要进行多线程处理)。我更喜欢AsyncTask,因为它们易于管理。

答案 2 :(得分:0)

根据Is it better to use AsyncTask or Service to upload a file in background?,服务可能会更好,因为服务特别适合在后台长时间做事。

同一页面还提到AsyncTasks很可能在活动进入后台时被杀死。