Android 开发中 getContext 和 getActivity的区别

  • MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Context;

  • this:表示当前对象;一般而言,在哪个类中调用,就是指向该对象。

  • getContext():这个是View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。

  • getActivity():获得Fragment依附的Activity对象。Fragment里边的getActivity()不推荐使用原因如下:这个方法会返回当前Fragment所附加的Activity,当Fragment生命周期结束并销毁时,getActivity()返回的是null,所以在使用时要注意判断null或者捕获空指针异常。

    在Fragment中获取上下文Context一般用getActivity:全局Application:public class Application extends Application {      private static Application instance;     @Override    public void onCreate() {        super.onCreate();        instance = this;    }     public static Application getInstance(){        return instance;    }  }  在Fragment中直接使用getContext方法容易产生空指针异常,覆写getContext方法private Activity activity; public Context getContext() {    activity = getActivity();    if (activity == null) {        return HSApplication.getInstance();    }     return activity;}

 

更多相关文章

  1. 安装Android studio出现'tools.jar' seems to be not in Android
  2. Android 屏幕旋转后防止重新执行onCreate的方法。
  3. 【Android】‘activity supporting action_view is not set as b
  4. Android中完全退出程序的四种方法
  5. Android Activity启动和退出过程中onResume()方法的回调
  6. andorid跳过系统API获取以太网IP,网关,DNS,MAC的方法
  7. 【Android】关联source code的方法

随机推荐

  1. Android(安卓)React Native自定义组件的
  2. 移动应用开发:如何创建自定义Android代码
  3. Android应用程序消息处理机制(Looper、Han
  4. 关于Android横竖屏的设置和使用
  5. Android(安卓)用代码动态添加View(ViewGro
  6. Android推送通知指南
  7. apk反编译
  8. Android调用系统自带的文件管理器进行文
  9. Android开发规范,性能优化
  10. 关于小机器人