BlockingQueue<ServiceSync>bq=new LinkedBlockingDeque<ServiceSync>();
ServiceSync s=new ServiceSync();
s.setService(OperationsConst.CODE, commonUtil.DOWNLOAD, true,null );
bq.add(s);
//s=new ServiceSync();
s.setService(OperationsConst.LOGIN, commonUtil.DOWNLOAD, true,null );
bq.add(s);
tmp=new TempThread(bq, context);
tmp.setBlockingQueue(bq);
在这里,我添加了2个对象,但每次只在队列中添加第二个对象。
答案 0 :(得分:0)
目前您正在向队列添加s
,更改您添加的值并第二次添加。因此,您最终会得到一个具有相同对象的队列两次。取消注释s=new ServiceSync()
,或者(更好)创建类型为ServiceSync
的新变量,并将其添加到队列中。
答案 1 :(得分:0)
更改值后,您使用了相同的引用。请创建另一个ServiceSync对象,设置所需的值并添加到队列中,如下所示。
BlockingQueue<ServiceSync> bq = new LinkedBlockingDeque<ServiceSync>();
ServiceSync s1 = new ServiceSync();
s1.setService(OperationsConst.CODE, commonUtil.DOWNLOAD, true, null);
bq.add(s1);
ServiceSync s2 = new ServiceSync();
s2.setService(OperationsConst.LOGIN, commonUtil.DOWNLOAD, true, null);
bq.add(s2);