java - 如何在android上正确使用mvc?

标签 java android multithreading user-interface

我对具有 mvc 架构的程序有点陌生,我想预先得到正确的想法......

我有这个(android)应用程序,其中一个线程(与 UI 线程分开)计算一些数据。完成后,结果将写入对象的成员。现在:我如何让 UI 线程“意识到”已经有更新(即 UI 线程必须重做屏幕输出)。

最明显的方法 - 在 UI 线程中运行无限循环来检查每个循环是否有更新 - 非常蹩脚。那么我该如何“正确”地做到这一点?

  • 我应该使用一个处理程序,每次有新数据可用时计算线程都会调用该处理程序。然后,该处理程序将触发重绘 UI 的函数。

  • 我应该使用 wait() 和 notification() 来让 UI 线程知道有新数据可用吗?

我在这里有点迷失了。虽然我知道这些概念的基础知识,但我不知道哪一个是在这里使用的“最佳”概念......

编辑:澄清:

我有一个类A(它是一个android Activity)和一个由A实例化的类B。这个类B有一个成员变量X并运行一个线程,计算X的值。当线程完成时,它向 B 的处理程序发送一条消息(带有计算值)。然后该处理程序设置 X 的值。 现在:由于 B 没有存储 A 的引用,我如何“通知”A X 的值发生了变化?我是否要发送另一个被 A 类中的处理程序“捕获”的消息对象?

最佳答案

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

关于java - 如何在android上正确使用mvc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777195/

相关文章:

Android布局textview和listview结合

android - RxJava、OkHttp、Okio、Android 中的文件下载器

android - 以编程方式将描边颜色设置为 CardView

java - 从java访问全局C变量

multithreading - “lock”应用程序的UI线程是什么意思?

java - 无法更改 GXT 文本区域中的字体系列

java - 一对一未知映射者

java - 如何通过 Java 应用程序将查询结果从 MySQL 导出到 PowerPoint?

java - 在 JSP 中使用外部项目

c - 根据优先级强制 Win32 线程调度到定义的顺序