찾다

 >  Q&A  >  본문

android中一些术语:XX的上下文,这个上下文怎么理解?

public CompassView(Context context, AttributeSet attrs) {

    super(context, attrs);
    init();
}

例如我这一个,默认就是调用这个构造方法。 我自己写的一个view的构造方法。context表示activity的上下文,attrs表示你在xml中配置的属性,例如宽,高等

context表示activity的上下文,,,这个上下文是什么意思?用些作文的来理解不通啊...求大牛形象理解一下


与已有问题重复:如何理解android中的上下文对象(Context对象)?

申请关闭

PHP中文网PHP中文网2777일 전658

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 14:41:20

    Context的作用是用来访问全局信息的,比如每个UI组件的构造函数都是要传入一个Context的。
    拿TextView来打比方:

    TextView textView = new TextView(this);
    textview.setText(R.string.balabala);
    

    这里实例化的时候传入了一个this,这个值就是一个Context。
    这里设置了一个在strings.xml文件中预定义的字符串,setText(int resid)函数的源码中是这样的:

        public final void setText(int resid) {
            setText(getContext().getResources().getText(resid));
        }

    注意这里面使用了getContext()函数去获取全局信息资源,并通过id筛选出自己想要的资源。这里的这个getContext()获取到的上下文,就是我们在实例化TextView时传进去的Context。


    所以,Context是用来协助对象访问全局信息的。
    使用的时候要尤其注意,Context传出去,使用完要及时释放掉,因为Context是有一个引用抓取着Activity的,如果Activity生命周期结束后还没有及时释放掉Context,很容易造成内存泄露。

    회신하다
    0
  • 阿神

    阿神2017-04-17 14:41:20

    当前的执行环境。
    function a(){
    ...
    ...
    ...
    }
    函数a的上下文就是函数内部的所有代码。或是理解为a的环境。

    회신하다
    0
  • 취소회신하다