2017-10-18 23 views
0

我有一个Android应用程序,显示大量的实时数据卡在一个大型滚动活动。即使不在屏幕上,碎片是否仍在运行?

现在我想分割成两个更简单的屏幕使用片段,其中只有一个片段可能在屏幕上的任何时间。

我在碎片上看了很多并观看了几个视频,但在开始剥离我的代码以将其转换为碎片之前,我想知道以下内容。

如果我创建两个片段A和B,然后同时显示片段B,数据来自在片段A.可以控制活动仍然片段传达给它的数据,即使它的关闭屏幕?或者我必须将数据保存到某处,然后当用户切换到片段A时,我给片段A显示数据,同时保存片段B的传入数据,这些数据现在将脱离屏幕?

问题是,现在我没有保存任何数据,因为一切都在一个屏幕上,所以数据进来我刚刚显示它,但如果我切换到使用片段我不知道我是否可以做同样的事情即使数据不在同一屏幕上,也会将数据传递到片段。

谢谢。

回答

0

如果您在活动中检索具有多个异步请求的数据,则可以为其中的每个请求创建一个片段,并将相关检索操作移动到该片段中(可能为oncreateView()方法)。然后,您可以在父Activity中使用ViewPager(可能带有TabLayout)来使用所有这些片段。因此,您的活动仅处理ViewPager的设置并将其余部分留给碎片。

ViewPager一次显示一个页面,但它也可以初始化其他片段,甚至在它们被显示之前。您可以使用ViewPager的setOffscreenPageLimit()方法来增加该范围。

如果您需要片段与活动之间的通信渠道,您可以创建回调机制,如here所述。