我对具有mvc架构的程序有点陌生,我想提前提出正确的想法...
我有这个(Android)应用程序,其中一个线程(与UI线程分开)在其中计算一些数据。完成后,结果将写入对象的成员。现在:如何获取UI线程以“意识到”已经进行了更新(即UI线程必须重做屏幕输出)。
最明显的方法-在UI线程中运行一个无休止的循环,检查每个循环中是否有更新-真是la脚。那我该怎么做“对”呢?
我应该使用处理程序吗,每次有新数据可用时,计算线程就会调用该处理程序。然后,此处理程序将触发一个重绘UI的函数。
我应该使用wait()和notify()来使UI线程知道存在新数据的事实吗?
我在这里迷路了。尽管我知道这些概念的基础知识,但我不知道哪一个是在这里使用的“最佳”概念...
编辑:澄清:
我有一个类A(这是一个android Activity)和一个由A实例化的类B。该类B有一个成员变量X并运行一个线程,该线程计算X的值。当线程结束时,它发送一个消息(带有计算值)发送给B的处理程序。然后,此处理程序设置X的值。
现在:由于B没有存储A的引用,我如何“通知” A X的值已发生变化?我是否发送另一个被A类的处理程序“捕获”的消息对象?
最佳答案
使用处理程序,如果有可用更新,则让后台线程通知UI线程。
不要通过循环或等待来阻止UI-Thread。这会使您的用户界面无响应,并杀死您的应用程序。