fragment中this.getActivity出现空指针异常

首先,因为fragment容易被销毁,所以在应用中利用this.getActivity()获取fragment所附着的Activity时会出现空指针异常的问题。这里的空是因为fragment被销毁,this为null而不是Activity为null.
解决方法:在应用程序级的类即继承自Application类中添加如下代码

public class MyApplication extends Application{
    ...
   private static MyApplication mContext;
   @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        mContext = this; //初始化mContext
        
     }
     /**
     * 获取context
     * @return
     */
    public static Context getInstance()
    {
        if(mContext == null)
        {
            mContext = new MyApplication();
        }
        return mContext;
    }
}

在fragment中直接通过调用MyApplication.getInstance()就可以获得应用程序级上下文。解决了调用this.getActivity()引起的空指针异常的问题。
以上基于借鉴其他大神的代码的基础上所得。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容