activity 进入 "don't keep activity" 开发选项后,Viewpager setCurrentItem() 方法无法正常工作

Viewpager setCurrentItem() method don't work normally after activity jump in "don't keep activity" develop option

我打开"don't keep activity"开发选项
在activityA里面有一个viewpager
然后 Activity 跳转到 Activity B,然后按返回按钮 return 到 A,此时 viewpager 的 setCurrentItem() 方法不起作用 normally.Unnormally 意味着 不要触发ViewPager.OnPageChangeListener中的onPageSelected()方法,同时相关的Tablayout不正确执行。
我试过调用[=26中的方法=]()(Whosebug中其他post写的解决方案,like this post)。
顺便说一句,我使用Android注解,我在@AfterViews中调用了setCurrentItem()。

Try this code:
@Override
void onStart(Bundle savedInstanceBundle){
    if (savedInstanceBundle != null){
       viewPager.setCurrentItem(savedInstanceBundle.getInt(VIEWPAGER_PAGE);
    }
}
    @Override
void onSavedInstanceState(Bundle outState){
    // Put your current ViewPager Page here;
    outState.putInt(VIEWPAGER_PAGE, page));
}

我找到原因了。 它是由ViewPager 的onSaveInstanceState 和onRestoreInstanceState 引起的。 我现在不知道详细的原因,等我知道的时候再post详细的回答