admin管理员组文章数量:1130349
APP框架:Activity+ViewPager+Fragment
条件:手机管家清理之后重新点击应用
状况:应用已停止运行
分析:假如手机没有root,使用第三方手机管家(非系统自带),应用的缓存被清理,重新进入软件时显示的界面是退出时的界面而非从启动页开始,
被清除的缓存分两种:
1.变量;2.Fragment
所以报错也分成2种:
1.变量:由于变量被清除,导致引用到这个变量的时候判断会出错,导致一系列问题,这个不难解决,只要引用的时候判断一下变量是否有值,没有值重新获取
2.Fragment:比较容易被忽略的问题就是Fragment缓存被清理掉了,当Activity调用Fragment里的方法时,会报控件空指针,但是同一个方法,Fragment自己调用就没有问题,我也曾经考虑到可能是由于Fragment还没有创建好就调用Fragmernt的方法导致空指针,测试之后发现并不是这个问题。
我认为这应该是类似于野指针的概念,因为手机没有root,所以手机管家清理之后事实上应用并没有被清理干净,手机管家清理之后报空指针是由于控件指向的是之前的Fragment而之前的Fragment已经被清理所以找不到对象。
方法:定义一个static View view,而Fragment自己的布局为View fragmentLayout,当onCreateView中fragmentLayout获取到值之后赋值给view,这样当手机管家清理之后,在Activity调用Fragment中的方法时先判断一下控件是否为null,假如为null,就用view重新初始化一下控件就可以了
好了,就这么多,人人为我,我为人人
APP框架:Activity+ViewPager+Fragment
条件:手机管家清理之后重新点击应用
状况:应用已停止运行
分析:假如手机没有root,使用第三方手机管家(非系统自带),应用的缓存被清理,重新进入软件时显示的界面是退出时的界面而非从启动页开始,
被清除的缓存分两种:
1.变量;2.Fragment
所以报错也分成2种:
1.变量:由于变量被清除,导致引用到这个变量的时候判断会出错,导致一系列问题,这个不难解决,只要引用的时候判断一下变量是否有值,没有值重新获取
2.Fragment:比较容易被忽略的问题就是Fragment缓存被清理掉了,当Activity调用Fragment里的方法时,会报控件空指针,但是同一个方法,Fragment自己调用就没有问题,我也曾经考虑到可能是由于Fragment还没有创建好就调用Fragmernt的方法导致空指针,测试之后发现并不是这个问题。
我认为这应该是类似于野指针的概念,因为手机没有root,所以手机管家清理之后事实上应用并没有被清理干净,手机管家清理之后报空指针是由于控件指向的是之前的Fragment而之前的Fragment已经被清理所以找不到对象。
方法:定义一个static View view,而Fragment自己的布局为View fragmentLayout,当onCreateView中fragmentLayout获取到值之后赋值给view,这样当手机管家清理之后,在Activity调用Fragment中的方法时先判断一下控件是否为null,假如为null,就用view重新初始化一下控件就可以了
好了,就这么多,人人为我,我为人人
版权声明:本文标题:Activity+ViewPager+Fragment 手机管家清理之后异常状况解决 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763914641a2971073.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论