在一个ViewPager更新的屏幕外片段(Updating offscreen fragments

2019-10-18 07:31发布

我有三个片段的应用程序:记录,图表,饼图。 这些片段被存储在一个ViewPager在一个单一的活动时,用户可以在它们之间滑动。 记录片段有一个表格,用户可以输入数据。 当用户输入数据时,其他两个片段需要,因为它们引用此数据将被更新。 本来我是想碎片更新,因为他们刷卡,但因为他们是滑动式我不能使用的onPause()和的onResume(),因为在onPause()(并由此的onResume())仅被调用时,标签是2+的屏幕了。 所以我决定有记录片段发送回调到活动告诉其他片段来更新自己当记录片段被更新。 我把所有的碎片在内存中,直到应用程序进入后台能正常工作。 当应用程序出来的背景,如果用户将数据输入到该表中,应用程序崩溃,因为所有的其它片段的变量都为空。 这究竟是为什么? 我不是在我的应用程序中使用saveinstancestate任何地方。 我可以做?

Answer 1:

去从这里的例子:

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

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



文章来源: Updating offscreen fragments in a ViewPager