将数据保存在Fragment的选项卡中

时间:2016-04-29 09:32:12

标签: android android-fragments

我有一个带有两个片段的标签。两个片段都从网络下载数据并显示它们。

典型用例是:用户打开应用程序,Fragment_A下载并显示数据。如果用户单击其他选项卡(选项卡B),则Fragment_B将下载并显示数据。 如果用户返回Fragment_A数据已经存在并显示,但如果他再次选择转到下一个选项卡(Fragment_B),则必须再次下载数据。

那么当用户导航到上一个标签(标签A)时,如何将数据保存到Fragment_B?这是我可以使用onSaveInstanceState()吗?

另外,为什么Fragment_A会保留数据而不是Fragment_B?代码是相同的,唯一改变的是显示的数据。

2 个答案:

答案 0 :(得分:4)

你可以:

  1. 托管容器活动中的数据并访问片段中的数据

  2. 使用单个对象/应用程序类中托管的某个类

  3. 但请记住,无论何时您的进程被杀,您都会在任何情况下丢失数据。如果您希望数据在多个进程spawn中持久存在,则需要将其存储为sqllite /某种持久性。

答案 1 :(得分:0)

是的,您可以将数据存储在onSavedInstanceState()中,但建议不要使用,因为Activity有自己的生命周期方法,并且onSaveInstanceState()不是它的一部分。

所以不保证永远不会被称为。

对于存储,还有其他选项,如

  • SharedPreferences
  • Sqlite数据库