如果我有一个数据库,我在其中逐步写入数据(在5分钟的间隔内),并且一旦我向DB写入新数据,我就有一个客户端线程从那里获取并将其发送到远程服务器。
问题是我怎么能这样做:写数据,让我写新数据的客户端线程......直到我在DB中写完数据?
Db中的写入数据在onCreate()内完成,只有发送部分在新线程中完成。 THX
答案 0 :(得分:1)
如何使用队列:BlockingQueue mQueue = new LinkedBlockingQueue();
private class RemoteWriter implements Runnable{
private final BlockingQueue queue;
RemoteWriter(BlockingQueue q) { queue=q;}
public void run() {
try {
while (true) {processObject(queue.take());}
} catch (InterruptedException ex) { //do something
}
}
void processObject(Object o) {
//write it to your server
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RemoteWriter rw=new RemoteWriter(mQueue);
new Thread(rw).start();
// rest of your code
}
然后在你的工作线程(或ui线程)中弹出队列中的东西。