不废话,直接进入正题

解决方法一:

在fragmentActivity里oncreate方法判断savedInstanceState==null才生成新Fragment,否则不做处理。


解决方法二(推荐):


在fragment所在的FragmentActivity中,重写onSaveInstanceState方法,但是不做实现,将super.onSaveInstanceState(outState)注释掉。

原理分析:

当前APP崩溃后首页重启或者从后台再次回到这个app的时候,通过onCreate中的参数savedInstanceState恢复了之前的fragment。此时的FragmentTransaction中的相当于又再次add了fragment进去的,之前保存的fragment也还在。hide()和show()方法对之前保存的fragment已经失效了。所以出现了重叠的现象。

更多相关文章

  1. Android——使用ContentProvider在应用间传递数据
  2. Android入门笔记 - 网络通信 - HttpClient
  3. Android(安卓)应用程序退出的四种方法
  4. 查看Android系统内存使用的方法
  5. Android获取屏幕或View宽度和高度的方法
  6. Android中的观察者模式简单使用
  7. Android的短信接收类
  8. 【Android】 分享一个完整的项目,适合新手!
  9. android琐碎问题拾计

随机推荐

  1. MySQL Binlog 日志处理工具对比分析
  2. MySQL5.7.33安装过程图文详解
  3. Mysql索引选择以及优化详解
  4. MySQL中explain语句的基本使用教程
  5. MySQL mysqladmin客户端的使用简介
  6. MySQL MGR搭建过程中常遇见的问题及解决
  7. MySQL 权限控制细节分析
  8. MySQL 权限控制详解
  9. MySQL 利用frm文件和ibd文件恢复表数据
  10. MySQL使用Xtrabackup备份流程详解