我目前有一个将图像上传到服务器的应用程序。要上传这些图像,我使用AsyncTask,它可以正常工作。它上传图像,显示通知以及进度。对于多个图像,将创建单独的异步任务。但我需要更多的东西:
我认为后台服务是我需要的。我的问题是我可以使用服务来完成这些任务:
我的主要障碍是检测服务是否正在运行。此外,是否可以让服务知道我已经将另一个文件添加到队列中(将文件添加到队列只是表中的SQL插入。一旦活动说文件有,服务应该将新文件附加到队列中已添加)
编辑:
这是我想要实现的伪代码:
Service service = new Service();
If service.isRunning{
service.itemAddedToQueueAndUpdateNotification()
}else{
service.start()
}
还有一些像
这样的回调 onServiceUpdateRecieved(){
//Update UI
}
答案 0 :(得分:1)
您可以使用https://github.com/linvi/tweetinvi/wiki/Upload来广播新的时间表(由活动发送,服务接收)或实际上传结果(由服务发送,活动接收,如果有效)
答案 1 :(得分:0)
我建议使用执行程序服务并继续将图像添加到其队列中。每个上传任务将一个接一个地发送。它将更易于管理,您甚至可以为任务完成添加回调,并在需要时更新UI。