【发布时间】:2013-04-11 12:39:44
【问题描述】:
我正在尝试在列表中添加一些项目并保持添加顺序。问题是
添加部分是在一个线程中完成的,因为我需要从数据库中获取一些详细信息,将它们放在一个
项目并将其添加到列表中。
public void addNewItem(Step item){
Thread t = new Thread(new Runnable(){
public void run() {
item.setDetails(db.getStepDetails(step.getId()));
add(item);
}
});
t.start();
}
add 方法如下所示:
private void add(Step step){
mitems.add(step);
}
如果我做类似的事情
addNewItem(stepA);
addNewItem(stepB);
如果第一次调用花费太多时间,第二个项目将首先添加到我的列表中。
您知道如何等待操作完成后再继续在我的列表中添加任何其他项目吗?
谢谢。
【问题讨论】:
-
我可能错了,但我相信使用
synchronize可以解决这个问题 -
您真的要使用单独的线程吗?在您的情况下,您恰好需要按顺序执行指令。
-
一种解决方法是同步 id,每次添加时都会增加并存储在添加的项目中。然后,您可以在生成的容器中看到项目的添加顺序。
标签: java android multithreading