现象:有个主界面,为MainAcitivty,用ViewPager+FragmentPagerAdapter加载了一个Fragment。结果在重启应用时,Frgment未被销毁,启动时,又重新建立Fragment,导致多个重复的Fragment
FragmentPagerAdapter有个回调接口如下:
 @Override
 public long getItemId(int position) {
 return mPresenter.getFragment(position).hashCode();
启动应用方法如下:
Intent intent = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
PhoneDao.saveRunRecord(false, exitType);

解决方法:将FragmentPagerAdapter的getItemId接口去掉即可。

原因:欢迎百度以上两个Adapter不同之处! FragmentStatePagerAdapter - 简书

一般的话, view page 会缓存一个页面,多余的页面会 销毁 ,重新滑动回来的时候回 fragment 回被 销毁 并重新加载,可能导致多吃初始化数据 解决方案1 page r.setOffscreen Page Limit(2);   解决方案2 保存好这状态下次恢复的时候只是使用 解决方案3 在adapter 覆盖 destoryItem 方法
今天我们的界面大幅改动,最终改成现在主流的Tab类型,和微信有点类似,下面有四个Tab对于四个不一样的模块。 但是这个四个界面都需要访问网络,并且我们开发框架用的是注解框架,导致对请求网络不好管理。, 而且又是 view page r+ fragment 我们计划是在第一个页面将四个模板全部初始化,然后放到集合里面,这样即使用户任意切换都不会有问题,因为我们已经初始化了, 但是用过 view page ...
一般我们切换 fragment 都用replace方法实现,但是这样的做法是有缺点的,当你从这个 fragment 切换到另一个 fragment 的时候当前的 fragment 会被系统回收掉,当你再次切换此 fragment 的时候就要重新加载数据了,这样子用户体验不好 public void start Fragment Add( Fragment fragment ) { Fragment Manager fragment Manager = getSupport Fragment Manager(); 一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, 更多创作活动请看: 可持续能源技术真的能改变世界吗?: https://activity.csdn.net/creatActivity?id=10425?utm_source=csdn_ai_ada_redpacket 职场解惑讨论会: https://activity.csdn.net/creatActivity?id=10427?utm_source=csdn_ai_ada_redpacket 无效数据,你会怎么处理?: https://activity.csdn.net/creatActivity?id=10423?utm_source=csdn_ai_ada_redpacket 全部创作活动: https://mp.csdn.net/mp_blog/manage/creative?utm_source=csdn_ai_ada_redpacket