由于我是开发Android应用程序的新手,所以我想问一下经验丰富的开发人员如何解决以下问题。
我要构建的应用程序应该执行以下操作:
当应用运行时,它会不断地通过upd
包收到各种双打。根据双精度值,它将在主要活动的文本和图像视图中显示某些消息。
到目前为止,我已经设置了前台服务(在额外的线程上运行)来接收双打。该服务绑定到主要活动。 我决定使用绑定服务,因为将来我想将其他活动连接到该服务。
这是我的问题:
我是否为我打算做的事情选择了正确的配置(绑定前台服务)?
如何根据udp服务接收到的double值更新我的图像和文本视图?我可以在服务中执行此操作,仅在值更改时才推送更新吗?
非常感谢您的时间和协助。
答案 0 :(得分:0)
我是否为我打算做的事情选择了正确的配置(绑定前台服务)?
对绑定的Service
无异议。只要将Activity
放在前台,将感兴趣的Service
绑定到Activity
将确保它保持活动状态。
如何根据udp服务接收到的double值更新图像和文本视图?我可以直接在服务中执行此操作,并且仅在值更改时才推送更新吗?
您不应尝试从外部更新View
。只有Activity
所属的组件(Fragment
或View
)才有权对其进行修改。
相反,只需将数据更改通知感兴趣的组件。
应用内通信的想法:
或者您可以Service
更新数据存储库,并使用LiveData
来使UI保持最新状态,如Guide to app architecture 中所述。