在android上进行UDP聊天

时间:2012-02-24 02:19:43

标签: android service udp blocking android-anr-dialog

我有关于在an​​droid上构建基于UDP的聊天客户端的学校作业。现在,我的第一个想法是创建一个启动服务的活动,服务处理所有网络和活动所有输入输出。但是发现了一个问题。

如果我尝试启动服务以便startCommand函数启动并调用socket.receive开始接收网络消息,我无法绑定服务以便我可以将活动的输入传递给服务(input = messages用户想要发送的)。它只是挂起并抛出ANR异常。如果我只绑定它(以便永远不会调用receive),它就像一个魅力。

也许我没有正确处理这个问题。或者它是否应该在阻塞接收呼叫上绑定服务?

1 个答案:

答案 0 :(得分:1)

我做过一次这样的事。我获取了跟踪其他设备所需的必要数据并将其送入asyncTask,在那里我启动了Runnable,它基本上保持了后台连接。(这样你就不用担心绑定了)我找到了而不是使自己的套接字连接更容易使用Apache MinaNetty。 (无需重新发明轮子)。如果您只是将从后台运行的会话中的数据传输传递给List或Queue并使用asyncTask进行检查并相应地更新UI,则应将其全部设置为进行聊天。也许这不是最好的方式,但它对我有用。希望有些帮助。