有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java片段即使不在屏幕上也会继续运行吗?

我有一个Android应用程序,可以显示大量实时数据,这些数据被塞进一个大型滚动活动中

现在,我想使用片段将其拆分为两个更简单的屏幕,在任何时候屏幕上都只能有一个片段

我读了很多关于片段的书,看了几段视频,但在我开始把代码转换成片段之前,我想知道以下几点

如果我创建两个片段A和B,那么在显示片段B的同时,数据会进入片段A。控制活动是否仍然可以与片段A通信,即使它在屏幕外也会提供数据?或者我必须将数据保存在某个地方,然后当用户切换到片段A时,我会给片段A显示的数据,同时保存片段B的传入数据,而片段B现在将不在屏幕上

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

谢谢


共 (1) 个答案

  1. # 1 楼答案

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

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

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