服务、线程和网络

service, threading and networking

我一直在阅读有关服务、执行程序、处理程序的内容,但我仍然感到困惑。 我想要一个线程来处理 websocket 协议。我希望任何 Activity 能够使用它发送 "command" 并接收对回调的回复。每个命令将为网络使用一个单独的线程activity,但在管理器和初始回复处理中使用这个 websocket 线程。

[发送命令]:任何Activity -> WebSocketThread -> NetThread -> 服务器 [Recv Rply]:SERVER -> NetThread -> WebSocketThread -> AnyActivity.Callback

一次可以有任意数量的 NetThreads

我不需要代码,但是关于什么的概念 类 将是高效和灵活的。还有什么是最有效的数据传递方式:意图;讯息; ....?

** 我使用术语 "thread" 来表示可以 运行 并发的独立线程,而不是基础 class.

实施 ServiceService 将拥有 websocket Thread 并将启动其他 Thread 来处理个别请求。

活动调用 startService() 请求 Service 做某事。调用 Activity 可以将数据传递给 Service 作为 startService() 中使用的 Intent 中的附加项。此 Intent 将传递给方法 Service.onStartCommand()

要将数据从 Service 传递到 Activity,有几种可能性(取决于需要返回的数据的类型和数量)。一种选择是 Service 可以使用 sendBroadcast() 在广播 Intent 中将数据广播为 "extras" 并且 Activity 可以设置一个 BroadcastReceiver收听回应。