服务、线程和网络
service, threading and networking
我一直在阅读有关服务、执行程序、处理程序的内容,但我仍然感到困惑。
我想要一个线程来处理 websocket 协议。我希望任何 Activity 能够使用它发送 "command" 并接收对回调的回复。每个命令将为网络使用一个单独的线程activity,但在管理器和初始回复处理中使用这个 websocket 线程。
[发送命令]:任何Activity -> WebSocketThread -> NetThread -> 服务器
[Recv Rply]:SERVER -> NetThread -> WebSocketThread -> AnyActivity.Callback
一次可以有任意数量的 NetThreads
我不需要代码,但是关于什么的概念 类 将是高效和灵活的。还有什么是最有效的数据传递方式:意图;讯息; ....?
** 我使用术语 "thread" 来表示可以 运行 并发的独立线程,而不是基础 class.
实施 Service
。 Service
将拥有 websocket Thread
并将启动其他 Thread
来处理个别请求。
活动调用 startService()
请求 Service
做某事。调用 Activity
可以将数据传递给 Service
作为 startService()
中使用的 Intent
中的附加项。此 Intent
将传递给方法 Service.onStartCommand()
。
要将数据从 Service
传递到 Activity
,有几种可能性(取决于需要返回的数据的类型和数量)。一种选择是 Service
可以使用 sendBroadcast()
在广播 Intent
中将数据广播为 "extras" 并且 Activity
可以设置一个 BroadcastReceiver
收听回应。
我一直在阅读有关服务、执行程序、处理程序的内容,但我仍然感到困惑。 我想要一个线程来处理 websocket 协议。我希望任何 Activity 能够使用它发送 "command" 并接收对回调的回复。每个命令将为网络使用一个单独的线程activity,但在管理器和初始回复处理中使用这个 websocket 线程。
[发送命令]:任何Activity -> WebSocketThread -> NetThread -> 服务器 [Recv Rply]:SERVER -> NetThread -> WebSocketThread -> AnyActivity.Callback
一次可以有任意数量的 NetThreads
我不需要代码,但是关于什么的概念 类 将是高效和灵活的。还有什么是最有效的数据传递方式:意图;讯息; ....?
** 我使用术语 "thread" 来表示可以 运行 并发的独立线程,而不是基础 class.
实施 Service
。 Service
将拥有 websocket Thread
并将启动其他 Thread
来处理个别请求。
活动调用 startService()
请求 Service
做某事。调用 Activity
可以将数据传递给 Service
作为 startService()
中使用的 Intent
中的附加项。此 Intent
将传递给方法 Service.onStartCommand()
。
要将数据从 Service
传递到 Activity
,有几种可能性(取决于需要返回的数据的类型和数量)。一种选择是 Service
可以使用 sendBroadcast()
在广播 Intent
中将数据广播为 "extras" 并且 Activity
可以设置一个 BroadcastReceiver
收听回应。