gpt4 book ai didi

android - 网络通信中的 Activity 和 fragment 职责(robospice)

转载 作者:可可西里 更新时间:2023-11-01 17:35:55 32 4
gpt4 key购买 nike

我正在使用 Robospice 库 创建应用程序。这是处理互联网连接的绝佳选择,因为库的核心是基于 Android 服务的,所以我们的连接与 Activity 生命周期无关。
我们正在创建我们的请求并使用 spice 管理器执行它们,而 spice 管理器又在每个 Activity (基本 Activity 继承)中实例化,如果有更好的方法来执行此操作,我不认为在这里放置管理对象的创建是正确的方法,请告诉我。

public class BaseActivity extends AppCompatActivity implements ActivityController, SpiceManagerProvider {
private SpiceManager mSpiceManager = new SpiceManager(MyRobospiceService.class);

我一直在 fragment 和 Activity 中准确地在我需要它们的地方创建请求(robospice 请求)。但是现在我想了一下。也许最好只在 Activity 中分离请求处理。并且只是监听按钮点击或任何来自 Activity fragment 的回调方法或其他一些组件间通信。而不是在 Activity 中提出请求,处理它。但在这种情况下,如果我需要在 fragment 中取回数据,我必须将它从 Activity 发送回 fragment 。所以看起来有很多多余的通信。

总而言之,我不想从更有经验的开发人员那里获得关于职责分离的建议,我应该只在一个组件(如 Activity )中处理请求,还是我可以在任何需要的地方发出和处理请求。
提前谢谢大家。

最佳答案

为每个 Activity 使用单个 SpiceManager 并在 Fragment 之间共享它是我过去成功完成的事情。不幸的是,在这种情况下,您必须检查每个响应监听器的 Activity 是否仍然恢复。具体来说,您需要确保不会更新已停止或已损坏的 UI。

参见 related FAQ question更多细节。

那里的第二段提到了另一种方法,即每个 Fragment 都有一个 SpiceManager,因此这对您来说也是一个可行的选择。我们在创建 SpiceManager 时注意到了一些开销(这只会在有很多 Fragment 时造成伤害),因此放弃了它以供我们使用。

关于android - 网络通信中的 Activity 和 fragment 职责(robospice),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475765/

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