我在我的应用中使用ViewPager来显示一系列日期的信息 - 每个页面都包含相应日期的信息。有相当多的这些信息,以及用户交互来更改此信息。当信息发生变化时,我需要将其保存到sqlite数据库。
虽然每次用户交互改变时我都可以自动将信息保存到数据库,但效率极低 - 我想保存一次。当页面离开视图时,它可以被回收,从而丢失信息。理想情况下,我希望在页面不在视图时将日期信息保存到数据库中 - 但我找不到挂钩该事件的方法。
在使用ViewPager.OnPageChangeListener
呈现新页面时很容易看到,但是我无法看到一种方法可以将页面移出视野 - 方法要么是适应的抓住新页面进入视图或通用滚动,这可能会或可能不会指示页面出去。
我已经从FragmentStatePageAdapter
扩展到我的适配器,所以可能会在那里挂钩。不幸的是,对于除了常见场景之外的任何事情,Android文档都非常稀疏 - 阅读FragmentStatePageAdapter
API documentation提供的信息非常少,除了让我知道这可能是正确的前进方向 - 可能是saveState
和{{1方法 - 但这些似乎是处理适配器的状态,而不是每个页面的片段。
有人可以提出解决方法吗?