我已经尝试用谷歌搜索了一段时间,但找不到任何明确的答案。我有一个应该监听多个 UDP 端口的 Android 软件。如果我没记错的话,我必须为每个端口创建自己的线程。端口收到数据后,应该将其传递给 UI 线程。
经过一番研究后,我得出结论,我应该使用处理程序向 UI 线程提供数据。但是,我对需要多少处理程序感到有点困惑。每个线程是否需要自己的处理程序或单独共享一个就足够了?
对于一些背景信息,我正在尝试创建定时线程,它每 100 毫秒检查一次接收到的 UDP 数据包,并将它们的内容更新到 UI 线程的 View 。
最佳答案
我会在 UI 线程上创建一个 Handler
并将该处理程序引用传递给每个线程(因此您只需要 1 个处理程序对象)。这样,由于处理程序是在 UI 线程上创建的,因此其 handleMessage
将在 UI 线程上执行 - 但要注意,通过 handleMessage
处理的每条消息都将执行得非常快。
关于java - 多线程时我需要多少个处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17966816/