执行上传的后台服务

Background service to perform uploads

我目前有一个应用程序可以将图像上传到服务器。为了上传这些图像,我使用了一个工作正常的 AsyncTask。它上传图像,显示它的通知以及进度。对于多个图像,创建单独的异步任务。但我还需要更多:

我认为后台服务是我所需要的。我的问题是我可以使用服务来完成这些任务:

我的主要障碍是检测服务是否 运行。此外,是否可以让服务知道我已将另一个文件添加到队列中(将文件添加到队列只是 SQL 插入 table。服务应将新文件附加到一旦 activity 表示已添加文件,请排队)

编辑:

这是我试图实现的伪代码:

   Service service = new Service();
   If service.isRunning{
          service.itemAddedToQueueAndUpdateNotification()
   }else{
        service.start()
   }

还有一些回调,比如

    onServiceUpdateRecieved(){
              //Update UI
    }

您可以使用 Intent 来广播新的时间表(由 activity 发送,由服务接收)或实际上传结果(由服务发送,由 [=13= 接收) =], 如果激活)

我建议使用执行程序服务并不断添加图像以上传到其队列。每个上传任务都会一个接一个地派发。它将更易于管理,您甚至可以为任务完成添加回调并在需要时更新 UI。