Android发送其他线程队列数据

时间:2014-01-24 16:16:43

标签: java android

我想生成一些将通过TCP套接字发送的文本字符串。我在几分钟内完成了它。 但是我想要一个生产者消费模式。我不在乎它是否失败。 我应该在申请时为此创建阻止Queque吗?我应该创建服务吗? 请注意,我想要一个线程来管理这项工作。

2 个答案:

答案 0 :(得分:1)

如果这是一个简短的任务(就像你评论过的那样),我建议把它放在AsyncTask作为后台线程。您可以单独控制有关此内容的任何内容,这将有助于您进行调试。 Services更适合长时间执行的任务,因此我不建议在此范围内使用它(即使与其他Activity进行通信也有点困难。Here你会发现AsyncTask的文档,此处为good example

阻止结构取决于您的需求 - 但我认为您不需要这样做。无论如何,如果您需要,您可以使用许多线程安全的数据结构,您可能会发现this有用。

答案 1 :(得分:0)

创建生产者添加数据的LinkedBlockingQueue。创建一个每秒钟左右触发的TimerTimer的任务是通过网络发送消息。

为此,生产者(生成消息的人)和消费者(Timer)都应该有权访问LinkedBlockingQueueTimer将删除LinkedBlockingQueue的第一个元素,然后将其发送。

听起来不错?