2

我有两个线程运行一个 id UI,另一个是工作线程。工作线程不断在端口上读取来自服务器的一些数据,当出现我需要在 UI 线程中更新我的 webview 时。工作线程再次继续读取并且永不结束。请建议如何做到这一点?

它可能是“C++ 中的信号”,它导致调用线程中的方法被调用..!! 我试过:1)在 UI 上运行工作线程(runOnUIThread)可能会降低 UI webview 性能,如果我将线程置于睡眠状态,它可能会错过睡眠时出现在端口的数据..(我不确定!) 2)使用处理程序,我必须在再次调用线程 n 之前指定时间,如果像 sleep() 一样出现在端口上,可能会导致丢失数据。3)在同一个类中有一个单独的线程,它给出:任何其他线程都不能更新主 UI 线程的视图。

请帮助.. :(

4

2 回答 2

1

也许我错过了一些东西,但似乎创建一个 Handler 对象,然后使用 post() 方法是你需要的:http: //developer.android.com/reference/android/os/Handler.html#post%28java .lang.Runnable%29

于 2010-08-08T03:52:03.830 回答
0

我有一个类似的问题。我有一个 UI 线程和一些做后端服务器的线程。我使用观察者模式让服务更新 UI,为此我在一个新线程中使用了 update 方法并调用runOnUiThread()它来更新 UI。它似乎适用于快速的事情。如果您想要比快速创可贴更好的东西,我建议您阅读Google 的这个 android threading guide并尝试将其与您的设计结合起来。

于 2010-09-08T11:24:23.970 回答