Android之getActivity()为null的情况

在Fragment中,有时候会对所在的Activity操作,比如获取物理返回键的监听。

需要注意:如果直接采用getActivity()方法,可能会产生空指针的异常(当系统内存不足时,JVM会优先回收优先级低的应用,如果此时Fragment所在的Activity被回收,而Fragment没有被回收,那么就会产生空指针异常)

解决方法:

在Fragment中的onAttach()方法中设置一个全局的变量mActivity

代码如下:

public Activity mActivity;

@Override
public void onAttach(Context context){
    super.onAttach(context);
    this.mActivity=(Activity)context;
}

这个时候在本Fragment中就拿到了Activity的实例。

猜你喜欢

转载自blog.csdn.net/weixin_38664232/article/details/84610642
今日推荐