更新ViewPager中的屏幕外片段

时间:2013-07-01 01:13:58

标签: android android-fragments android-viewpager android-tabstrip

我有一个包含三个片段的应用程序:Records,Chart和PieChart。这些片段存储在单个活动中的ViewPager中,用户可以在它们之间滑动。 Records片段有一个表,用户可以在其中输入数据。当用户输入数据时,需要更新其他两个片段,因为它们引用了这些数据。最初,我希望片段在刷卡时更新,但由于它们是可刷的,我不能使用onPause()和onResume()因为onPause()(因此onResume())仅在选项卡被调用时被调用2个以上的屏幕。所以我决定让Records片段向Activity发送一个回调,告诉其他片段在更新Records片段时自行更新。我将所有片段保存在内存中,这样可以正常运行,直到应用程序进入后台。当应用程序退出后台时,如果用户将数据输入到表中,则应用程序崩溃,因为其他片段中的所有变量都为空。为什么会这样?我没有在我的应用程序中的任何地方使用saveinstancestate。我应该吗?

1 个答案:

答案 0 :(得分:0)

从这里开始的例子:

http://developer.android.com/reference/android/app/Fragment.html

您应该将所有支持每个UI组件的数据保存在Fragment的onSaveInstance()的Bundle中。然后在onActivityCreated()回调中,恢复数据。