以循环线程发送数据

时间:2011-05-06 19:10:05

标签: android database multithreading

如果我有一个数据库,我在其中逐步写入数据(在5分钟的间隔内),并且一旦我向DB写入新数据,我就有一个客户端线程从那里获取并将其发送到远程服务器。

问题是我怎么能这样做:写数据,让我写新数据的客户端线程......直到我在DB中写完数据?

Db中的写入数据在onCreate()内完成,只有发送部分在新线程中完成。 THX

1 个答案:

答案 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线程)中弹出队列中的东西。