gpt4 book ai didi

java - 使用 service/dao 层模式的 Android 项目 "back-end"的最佳架构

转载 作者:行者123 更新时间:2023-12-02 11:41:14 24 4
gpt4 key购买 nike

我正在尝试使用 Spring Boot (REST) 作为后端、Android 作为前端来启动一个项目。问题出在android项目中,因为我想使用服务- Controller 模式。

当我将用于管理 http 请求/响应的代码放在其他类(例如 UserService)中时,它位于主线程之外,并且无法操作 UI。

我正在阅读有关“runonuithread”的内容,但 UI 的元素不在 Service 类中...在这种情况下我能做什么?将元素添加到类中还是管理 UserService 内的上下文?

这是用于异步调用的。但是当我不想进行同步调用时,这是必要的吗?

最佳答案

这是使用 EventBus 的最佳场景.

在 Activity 内,您可以订阅事件,并从服务中发布事件。

Activity/Fragment.java

// ======= EventBus Subscribers =======
@Subscribe(threadMode = ThreadMode.MAIN_ORDERED)
public void onEvent(ActionEvent event)
{
// Maniupulate the UI directly
titleTextView.setText(event.getTitle());
messageTextView.setText(event.getMessage());
}

ActionEvent.class

// A Simple Class with the required properties
public class ActionEvent{

private final String title;
private final String message;

public ActionEvent(String title, String message) {
this.title = title;
this.message = message;
}

...
// Getters and any other required stuff
...
}

Service.java

// Appropriately compose and Post the event
ActionEvent event = new ActionEvent("Some Title", "Some Message");
EventBus.getDefault().post(event);

关于java - 使用 service/dao 层模式的 Android 项目 "back-end"的最佳架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com