【问题标题】:Activity and fragment responsibilities in network communication (robospice)网络通信中的活动和片段职责(robospice)
【发布时间】:2023-03-10 20:15:01
【问题描述】:

我正在使用Robospice library 创建应用程序。处理互联网连接是个不错的选择,因为库的核心是基于 Android Service,所以我们的连接不依赖于 Activity 生命周期。
我们正在创建我们的请求并使用香料管理器执行它们,而香料管理器又在每个活动中实例化(基本活动继承),如果有更好的方法,我不是在这里创建管理对象的正确方法,请告诉我。

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

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

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

【问题讨论】:

    标签: android http android-activity android-networking robospice


    【解决方案1】:

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

    请参阅related FAQ question 了解更多详情。

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

    【讨论】:

      猜你喜欢
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      • 2021-09-27
      • 1970-01-01
      相关资源
      最近更新 更多