我正在使用Robospice library
创建应用。这是处理互联网连接的绝佳选择,因为图书馆的核心基于Android服务,因此我们的连接与活动生命周期无关。
我们正在创建我们的请求并使用spice管理器执行它们,而spice管理器又在每个活动中实例化(基本活动继承),我不是在这里创建管理对象的正确方法,如果有更好的方法,请告诉我。
public class BaseActivity extends AppCompatActivity implements ActivityController, SpiceManagerProvider {
private SpiceManager mSpiceManager = new SpiceManager(MyRobospiceService.class);
我一直在创建请求(robospice请求),正好在片段和活动中需要它们。但是现在我想到了一点。也许最好只在活动中分离请求处理。只需通过回调方法或其他一些组件间通信来监听按钮点击或活动中碎片的任何内容。并且在活动中提出请求,处理它。但在这种情况下,如果我需要在片段中获取数据,我必须将其从活动发送回片段。所以似乎有很多冗余通信。
总而言之,我不想从更有经验的开发人员那里获得有关责任分离的建议,我是否应该只在一个组件(如活动)中处理请求,或者我可以在任何需要的地方制作和处理请求。
提前谢谢大家。
答案 0 :(得分:1)
每个ExecStart=/usr/bin/docker -d --selinux-enabled $other_args
使用一个SpiceManager
并在Activity
之间共享,这是我过去成功完成的工作。遗憾的是,在这种情况下,您必须检查Fragment
是否仍然为每个响应侦听器恢复。
具体而言,您需要确保不会更新已停止或已销毁的UI。
有关详细信息,请参阅related FAQ question。
第二段提到另一种方法是Activity
每SpiceManager
,所以这对你来说应该是一个可行的选择。我们注意到在创建Fragment
时会产生一些开销(这只会在有很多SpiceManager
s时受到伤害)因此放弃使用它。