繁体   English   中英

如何在Android上正确获取MVC?

[英]how to get the mvc right on android?

我对具有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类的处理程序“捕获”的消息对象?

您知道AsyncTask吗? 它将为您解决所有这些复杂的问题。

使用处理程序,如果有可用更新,则让后台线程通知UI线程。

不要通过循环或等待来阻止UI-Thread。 这会使您的用户界面无响应,并杀死您的应用程序。

...您的问题似乎更多地是关于线程管理及其设计,而不是关于mvc。

然后,您不应使用类线程或可运行的接口,而应使用AsyncTask。 它使更新UI和设计业务逻辑变得更加容易。 AsyncTask的目标是为您处理线程管理。

看看android开发人员博客。 无痛穿线

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM