Android意图服务

时间:2012-08-30 12:57:07

标签: android intentservice

我有一个ListView,其中每一行代表需要上传到服务器的内容。每行包含Button,按下时会启动意向服务以开始上传到服务器。

当我第一次按下Button时,意图服务会启动,但第二次新意图服务无法启动?应该是 ?这是我onClickListener ListView的{​​{1}}代码。

Button

我做错了吗?第二行按钮是否也不会创建新的IntentService来开始上传?

1 个答案:

答案 0 :(得分:3)

IntentService实际上只是一个工作队列:

  • 进行第一次startService调用时,服务启动,创建工作线程并将传递的意图添加到工作队列
  • 工作线程从队列中读取第一个意图并对其进行处理
  • 如果在处理第一个意图期间第二个意图被传递给服务(通过第二次startService调用),意图被添加到队列中(相同的第三个,第四个等)
  • 工作程序一直运行,直到工作队列为空,之后服务停止

因此,您的第二行按钮可能会启动另一项服务,但前提是第一次上传已完成。

如果您想同时上传两个文件 ,则无法使用IntentService,因为它一次处理一个命令。