在使用fragment的时候经常会遇到getActivity()为null的情况。比如我在一个异步网路请求的回调中调用了getActivity()就会出现空指针问题。之前解决这个问题,通常都是直接加空指针判断来规避,但是这并没有真正解决问题。 很多人都曾被这个问题所困扰,如果app长时间在后台运行,再次进入app的时候可能会出现crash,而且fragment会有
mHost 传入,是在 Activity 初始化的时候传入的,源码如下: 当调用 getActivity() 的时候,Fragment 已经 onDetach() 从 Activity 中。所以会造成空指针。 解决办法 在BaseFragment 的 onAttach() 方法中获取 Activity 并赋值给成员变量,然后在需要使用 getActivity() 的地方使用该成员变量就可以了。 具体解决 1.在...
hide 等), 则一般不会出啥问题. 如果是多个 Fragment 切换的场景, 就容易出现 getActivity() 为 null 等问题. 这种问题在使用 FragmentPagerAdapter 时尤其容易出现.
但是此时恢复出的Fragment,在调用getActivity的时候会返回null,具体什么原因还没详细研究,这里我的解决方法是在恢复Fragment之前把保存Bundle里面的数据给清除,也就是保存的Fragment信息,然后自己重新replace。方法如下:在FragmentActiivty的oncreate方法里面调用 if(arg0 != null) { String FRAGMENTS_TAG = "android:suppor...
有时候在Fragment调用getActivity返回为null,此时可以在Fragment的构造方法中,传递一个参数Activity。然后在Activity中new Fragment时将自己传递过去即可。 六、Fragment不响应onActivityResult 问题描述:在Fragment中使用startActivityForResult起了一个activity,activity运行完返回结果时,Fragement的onActivityResult却不会被调用。over...
overide FragmentActivity onSaveInstanceState method like this. @OverridepublicvoidonSaveInstanceState(BundleoutState){super.onSaveInstanceState(outState);if(outState!=null){StringFRAGMENTS_TAG="android:support:fragments";// remove掉保存的FragmentoutState.remove(FRAGMENTS_TAG);}} ...
当fragment生命周期结束并销毁时,getActivity()返回的会是null。所以在使用时要注意判断null或者捕获空指针异常。所以只要判断getActivity()为空,就可以不再执行下面的代码,这完全不影响业务的使用。首先
但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。 当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。 1.3 Fragment的使用相关 使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragmen...
在开发项目中有时会碰到getActivity函数为空的情况, 导致apk空指针崩溃问题, 看代码逻辑没有明显的原因。 如果看Activity.Java、FragmentActivity.java的源码就可以找到原因。 当activity实例在后台时, 系统在回收资源时很可能回收掉Activity, 并在onSaveInstanceState函数里保存fragment的状态, 再次打开该Activity时, 在on...
Android Fragment中调用getActivity为null的问题 2017-08-27 08:17 −在使用fragment的时候经常会遇到getActivity()为null的情况。比如我在一个异步网路请求的回调中调用了getActivity()就会出现空指针问题。之前解决这个问题,通常都是直接加空指针判断来规避,但是这并没有真正解决问题。 &nb... ...