1

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

回答

0

从这里走向由例如:

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

您应保存所有数据的支持下每个UI组件在你的片段的onSaveInstance()的捆绑。然后在onActivityCreated()回调中恢复数据。

+0

那些碎片呢?我甚至可以将整个片段保存为一个包?碎片中的数据正在被消灭。包括片段引用的视图在内的所有内容都是空的。 – GameKyuubi

+0

请参阅编辑。 sry,有一段时间没有与Fragments(或任何Android应用开发者)合作过。 –

+0

它看起来似乎还需要在动作中做一些工作。这一切都在这个例子中。 –