gpt4 book ai didi

java - 应如何将长时间运行的操作中的数据传递到要在 UI 中显示的 fragment ?

转载 作者:行者123 更新时间:2023-12-01 16:59:22 26 4
gpt4 key购买 nike

我是 Android 新手,有一个设计问题。所以我明白建议使用Fragments。我还了解一个 Activity“拥有”一个 Fragment。
所以我的问题如下:
假设我们想要进行长时间运行的后台调用,例如HTTP 到服务器。
结果应显示在 UI 中。
那么最佳/标准做法是什么?
1) 执行长时间运行调用的对象是否应该由 Activity“拥有”,并将结果发送回 Activity,然后从 Activity 发送回 Fragment,以便更新 UI?
2)或者执行长时间运行调用的对象应该由Fragment“拥有”,并将结果发送回Fragment以更新UI?那么 Activity 完全不知道这一点吗?

最佳答案

两者都不是,恕我直言。执行长时间运行的对象应由 Service 管理,您在其中使用 WakeLock(如果需要,还可以使用 WifiLock),而长时间运行的对象应由 Service 管理。 -running HTTP 操作正在运行。 IntentService 可能是一个不错的选择,因为无论如何您都需要一个后台线程。

该服务反过来可以使用某种进程内事件总线(LocalBroadcastManager、greenrobot 的 EventBus、Square 的 Otto 等),让 UI 层了解任何重要事件发生于该 HTTP 操作。 Activity 或 fragment 是否订阅总线上的事件取决于事件需要发生什么。如果 fragment 的小部件需要更新, fragment 将订阅。如果 fragment 的组合发生变化,或者需要一些其他 Activity 级别的 UI 更改,则 Activity 将订阅。

所有这些都假设“长时间运行”是指花费一秒左右的时间。

关于java - 应如何将长时间运行的操作中的数据传递到要在 UI 中显示的 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28907289/

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