将数据和相关任务放在Fragment或Activity中更好吗?

时间:2015-08-09 09:13:29

标签: android android-fragments

在我的应用程序中,在输入活动时,将启动后台任务以从服务器获取数据,并且数据将显示在片段中。有3种方法可以做到。

1。在Activity.onCreate()中启动任务,并将数据保存为Acitivity字段,然后创建片段。 Fragment获取要从Activity显示的数据的引用,该实现FragmentListener接口。所有数据都保存在Acitivity.onSavedInstance()中。 Fragment本身不保留数据,仅用于显示。

2。在Activity.onCreate()中启动任务,但将数据保留为Fragment字段。所有数据都保存在Fragment.onSavedInstance()中。

3。所有相关工作都在Fragment中完成。数据获取的代码也放在Fragment中。所以在Activity中,只调用Fragment的创建。在需要时以这种方式将Fragment放入不同的Activity中很容易。

我想知道哪种方式是设计应用程序的最佳方式,考虑到未来的解耦,模块化和扩展规则。

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我会将它保留在Fragmant中,只要Fragmant是我将使用它的唯一地方。

但是,假设您有两个Fragmants并且它们都使用数据,那么逻辑上要做的就是将数据保存在一个公共位置;即活动。

答案 2 :(得分:0)

听起来你可以将所有代码完全包含在片段中,除了最初启动片段之外,甚至不需要Activity知道它存在或关心它。似乎将片段中的所有内容保持在最佳状态。然后你就可以拥有那个片段并将它重用于你想要的任何活动,这是良好解耦的目标(即使你没有这个目标)。