我有两个线程运行一个id UI,另一个是工作线程。工作者线程不断从服务器端口读取一些数据,当出现时我需要在UI线程中更新我的webview。工作线程再次继续读取并永不结束。 Plz建议如何实现这个目标??
它可能是'C ++中的信号'导致调用调用线程中的方法。!! 我尝试过:1)由于在UI上运行工作线程(runOnUIThread)可能会降低UI webview性能,如果我将线程置于睡眠状态,它可能会错过睡眠时出现在端口上的数据..(我不确定!) 2)使用Handler,我再次指定再次调用线程n之前的时间,如果在sleep()上出现在端口上,可能会导致错过数据。 3)在同一个类中有一个单独的线程,它给出:任何其他线程都无法更新主UI线程的视图。
Plz帮助...... :(
答案 0 :(得分:1)
也许我错过了一些东西,但似乎创建一个Handler对象,然后使用post()方法就是你需要的:http://developer.android.com/reference/android/os/Handler.html#post%28java.lang.Runnable%29
答案 1 :(得分:0)
我有类似的问题。我有一个UI线程和一些后端服务器的线程。我使用观察者模式让服务更新UI,并且这样做我在新线程中有更新方法并调用runOnUiThread()
让它更新UI。它似乎适用于快速的事情。如果你想要一个比快速创可贴更好的东西,我会建议你从谷歌阅读this android threading guide并尝试将它与你的设计结合起来。