Activity 和网络通信中的片段职责 (robospice)

Activity and fragment responsibilities in network communication (robospice)

我正在使用 Robospice library 创建应用程序。处理 Internet 连接是一个很好的选择,因为库的核心是基于 Android 服务,所以我们的连接不依赖于 Activity 生命周期。
我们正在创建我们的请求并使用 spice 管理器执行它们,而 spice 管理器又在每个 activity (Base Activity inheritance) 中实例化,我不是在这里创建管理对象的正确方法,如果有更好的方法可以做到这一点,请告诉我。

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

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

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

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

有关详细信息,请参阅 related FAQ question

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