我在一个活动中有多个片段。每个片段都必须显示一些使用 REST 从服务器获取的数据。我一直在IntentService
为 REST 请求使用相应的接收器。现在我可以通过将片段作为活动中的内部类来做到这一点。
我对内部类的问题是,在方向改变时,会抛出一个错误,比如“无法实例化片段,没有空的构造函数”。对于这个问题,在搜索中我找到了诸如将内部类设为静态或为 Fragment 创建一个独立的公共类之类的答案。我仍然不明白为什么会在方向改变时发生这种情况。
现在,如果我采用为 Fragment 创建一个单独的独立类的方法,我将不得不将活动对象传递给 dostartService
和registerReceiver
. 而且我不想使用AsyncTask
它,因为在我的应用程序中,我在单个片段中执行多个 REST 请求,并IntentService
允许在每个请求之后发送广播,这样我就不必等到所有请求都完成才能开始加载屏幕。而且我觉得将活动对象传递给片段是不行的。片段不应该与活动尽可能松散耦合,以便可以在多个活动中使用相同的片段吗?如果是,解决此问题的最佳方法是什么?