Android ViewPager-确定页面何时离开视图

Android ViewPager-确定页面何时离开视图,android,android-fragments,android-viewpager,fragmentstatepageradapter,Android,Android Fragments,Android Viewpager,Fragmentstatepageradapter,我在应用程序中使用ViewPager来显示一系列日期的信息,每个页面都包含相应日期的信息。有相当多的信息,以及用户交互来更改此信息。当信息更改时,我需要将其保存到sqlite数据库 虽然每次用户交互更改信息时,我都可以自动将其保存到数据库中,但这是非常低效的—我只想保存一次。当一个页面无法查看时,它可能会被回收,从而丢失信息。理想情况下,我希望在页面无法查看时将日期的信息保存到数据库中,但我找不到一种方法来钩住该事件 使用ViewPager.OnPageChangeListener,可以很容易地

我在应用程序中使用ViewPager来显示一系列日期的信息,每个页面都包含相应日期的信息。有相当多的信息,以及用户交互来更改此信息。当信息更改时,我需要将其保存到sqlite数据库


虽然每次用户交互更改信息时,我都可以自动将其保存到数据库中,但这是非常低效的—我只想保存一次。当一个页面无法查看时,它可能会被回收,从而丢失信息。理想情况下,我希望在页面无法查看时将日期的信息保存到数据库中,但我找不到一种方法来钩住该事件

使用
ViewPager.OnPageChangeListener
,可以很容易地看到何时显示新页面,但是我看不到一种捕获页面离开视图的方法-方法要么是用于捕获进入视图的新页面,要么是通用滚动,这可能表示或不表示页面离开

我已经在扩展我的适配器的
FragmentStatePageAdapter
,因此可能会在那里挂接一些东西。不幸的是,众所周知,Android文档对于常见场景之外的任何内容都是非常稀少的-阅读提供的信息很少,只能让我知道这可能是正确的前进方向-可能是使用
saveState
restoreState
方法-但这些方法似乎处理适配器的状态,而不是每个页面的片段


有人能提出解决方法吗?

“当一个页面无法查看时,它可能会被回收,从而丢失信息”——你说的“无法查看”是什么意思
ViewPager
本身至少有3个页面,可以选择更多。我所说的“看不见”是指当用户再也看不到它时-当另一个页面即将可见时。对于典型的
ViewPager
,只有一个可见页面,我看不出检测新页面何时进入视图(
OnPageChangeListener
)和旧页面何时退出视图之间有什么区别。@Commonware是的,但我如何确定哪个页面刚刚退出视图?我知道新可见页面的索引,但不知道刚刚被替换的索引“我如何确定哪个页面刚刚退出查看?”——在
int
中跟踪上次查看的页面,您可以在
OnPageChangeListener
中更新该页面。