点击home键之后重新进入程序, fragment为null
来源:互联网 发布:淘宝网简介ppt 编辑:程序博客网 时间:2024/05/21 09:30
如果系统内存不足、或者切换横竖屏、或者app长时间在后台运行,Activity都可能会被系统回收,然后Fragment并不会随着Activity的回收而被回收,从而导致,Fragment丢失对应的Activity。
这里,假设我们继承于FragmentActivity的类为MainActivity,其中用到的Fragment为FragmentA。
app发生的变化为:某种原因系统回收MainActivity——FragmentA被保存状态未被回收——再次点击app进入——首先加载的是未被回收的FragmentA的页面——由于MainActivity被回收,系统会重启MainActivity,FragmentA也会被再次加载——页面出现混乱,因为一层未回收的FragmentA覆盖在其上面——(假如FragmentA使用到了getActivity()方法)会报空指针,出现crash。
原理虽然有点绕,但是解决办法很简单:
MainActivity重写onSaveInstanceState方法,将super.onSaveInstanceState(outState);注释掉,让其不再保存Fragment的状态,达到其随着MainActivity一起被回收的效果!
1 0
- 点击home键之后重新进入程序, fragment为null
- Android点击Home键后fragment重新加载问题
- Android点击Home键后fragment重新加载问题
- Slidingmenu+Fragment中,按下home键返回桌面,再重新进入程序时报错问题的解决方法
- android Home 之后重新进入 保持应用操作界面
- iOS在控制器中监听是否点击Home键以及重新进入界面的方法
- 安卓程序打包运行点击Home键后点击图标重新打开了一个程序
- 点击Home健,退出程序,再点击图标,进入程序
- swift 进入后台或者点击home键是程序进入后台后,持续定位
- Android 应用启动出现两个进程,多次退出,home 键重新进入程序
- 安卓按home键之后,再次点击程序图标避免再次重新启动程序解决办法
- 安卓按home键之后,再次点击程序图标避免再次重新启动程序解决办法
- 安卓按home键之后,再次点击程序图标避免再次重新启动程序解决办法
- 安卓按home键之后,再次点击程序图标避免再次重新启动程序解决办法
- 安卓按home键之后,再次点击程序图标避免再次重新启动程序解决办法
- Android 应用home键,来电或者其他方式进入后台运行,再次进入程序需要重新登录问题
- android 打开app进入某个activity之后在按home,在点击桌面图标进入会重启。
- android程序按HOME键后,重新点击图标是重起应用程序,而不是之前那个界面
- 找单词问题
- 随机数发生器
- hive create database/table 和 hive 命令操作
- 并查集趣味解释
- OKHttp的常用配置如配置Https证书,忽略Https证书,Cookie持久化
- 点击home键之后重新进入程序, fragment为null
- 开篇之作------20160804
- 在一个form表单中根据不同按钮实现多个action事件
- 使用navicat将csv文件导入mysql
- KVM进阶
- 160804方法调用的练习题2
- Fragment回退栈管理
- Swiper.js使用方法
- 凸多边形最优三角剖分