Android 安卓意向服务

Android 安卓意向服务,android,intentservice,Android,Intentservice,我有一个列表视图,其中每一行表示需要上传到服务器的内容。每行包含一个按钮,当按下该按钮时,将启动一个意图服务以开始上传到服务器 第一次按下按钮时,意向服务启动,但第二次新的意向服务未启动?应该吗?这是我的ListView按钮的onClickListener中的代码 Intent intent = new Intent(VaultActivity.this, Upload.class); intent.putExtra(FILEPATH, vidoObject.filePath); intent.

我有一个
列表视图
,其中每一行表示需要上传到服务器的内容。每行包含一个
按钮
,当按下该按钮时,将启动一个意图服务以开始上传到服务器

第一次按下
按钮时,意向服务启动,但第二次新的意向服务未启动?应该吗?这是我的
ListView
按钮的
onClickListener
中的代码

Intent intent = new Intent(VaultActivity.this, Upload.class);
intent.putExtra(FILEPATH, vidoObject.filePath);
intent.putExtra(POSITION, position);
ListActivity.this.startService(intent);

我做错什么了吗?第二行按钮是否也应创建新的IntentService以开始上载?

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

  • 当发出第一个startService调用时,服务将启动,创建一个工作线程并将传递的意图添加到工作队列中
  • 工作线程从队列中读取第一个意图并对其进行处理
  • 如果在处理第一个意图的过程中,第二个意图被传递到服务(通过第二个startService调用),则该意图被添加到队列中(第三个、第四个等相同)
  • 工作进程将一直运行,直到工作队列为空,然后停止服务
因此,您的第二行按钮可能会启动另一项服务,但前提是第一次上传已经完成


如果你想同时上传两个文件,你不能使用IntentService,因为它一次只能处理一个命令。

谢谢,我已经解决了这个问题。第二行,在第一次上传完成后开始上传。比你强。