首页 > 解决方案 > android Java 多个类更新activity UI(如何共享数据)

问题描述

我知道这个问题已经被问过好几次了,但我似乎找不到合适的答案或者有多种解决方案。我只是想找到最好的解决方案。

我有一个应用程序,它有几个活动,如主、设置、用户配置文件等,我有不同的信息来源进入应用程序,例如从服务器提取数据、BLE 通信、后台计时器等。计划是这些调用通信功能在单独的类中,即 servercomms、BLEStack、计时器等

问题是将这些类中的数据共享到活动 UI 的最佳方式是什么?似乎有不同的方法,例如 Intent、Async、Runable,但不确定应该使用哪一种?当我查看其中一个时,它似乎会产生性能问题,并且如果设备内存不足,它将停止运行。

例如,如果有一个 Timer 在后台运行,它将更新 Main Activity 上的图片、文本,我如何调用函数或从 timer 类更新 UI?我想在 MainActvity 代码中运行一个函数,但不确定这是否正确,因为我读到它可能会影响移动应用程序的性能?

抱歉,我知道这个问题已经得到解答,并且我已经关注了每个线程,但无法找到最好的方法来共享数据和更新活动 UI。

标签: javaandroid

解决方案


我建议根据他们的描述查看EventBus :

用于 Android 和 Java 的事件总线,简化了活动、片段、线程、服务等之间的通信。更少的代码,更好的质量。

或者

看看官方的 android 文档Communicating with Fragments,它展示了如何使用ViewModels 在活动和片段之间以及片段到片段之间共享数据。


推荐阅读