这么写是没有问题的,问题在于,这个Context哪来的我们不能确定,很大的可能性,你在某个Activity里面为了方便,直接传了个this;这样问题就来了,我们的这个类中的sInstance是一个static且强引用的,在其内部引用了一个Activity作为Context,也就是说,我们的这个Activity只要我们的项目活着,就没有办法进行内存回收。而我们的...
android中有两种context,context主要作用是加载和访问资源,通常在各种类和方法间传递的是activity context,如onCreate()方法中的TextView label = newTextView(this);,this将Activity的Context传递给View Control,从而TextView对象将持有对整个Activity的引用,进而引用activity占有的资源:view hierachy, resource等(所以Activi...
从上面的继承关系来看,每一个Activity就是一个Context,每一个Service就是一个Context,每一个Application就是一个Context,这也就是为什么使用Context的地方可以被Activity,Service或者Application替换了。 根据上面所介绍的,实现Context的只有Contextimpl类,其它是对context的包装,最终调用的还是的Contextimpl类,所以Activity,a...
在android中常用的context有两种,一种是application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。 两者的区别: publicclassMyActivityextendsActivity{publicvoidmethod(){mContext=this;// since Activity extends ContextmContext=getApplicationContext();}} this是Activity 的实例,...
Context.getApplicationContext或者Activity.getApplication方法获取. 还有就是,在使用context的时候,小心内存泄露,防止内存泄露,注意一下几个方面: 1. 不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的 2. 对于生命周期长的对象,可以使用application context ...
1、Context是维持Android程序中各组件能够正常工作的一个核心功能类,我们选中Context类 ,按下快捷键F4,右边就会出现一个Context类的继承结构图啦,如下图所示: 看下我用红线标出来的地方,从这里可以看到Activity、Service、Application都是Context的子类; 2、再来从源码角度看Context类: ...
Context从字面上理解就是上下文的意思,在实际应用中它也确实是起到了管理上下文环境中各个参数和变量的总用,方便我们可以简单的访问到各种资源。虽然Activity和Application都是Context的子类,但是他们维护的生命周期不一样。前者维护一个Acitivity的生命周期,所以其对应的Context也只能访问该activity内的各种资源。后者则是...
1. 不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的 2. 对于生命周期长的对象,可以使用application context 3. 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化 现在回到正题,说一下android全局...
Activity context跟Activity的生命周期是相关的,但是对一个Application来说,Activity可以销毁几次,那么属于Activity的context就会销毁多次。2、使用场景不同 Activity的context是通常使用的方法,有时候不得不使用Application的context。application context可以通过Context.getApplicationContext或者Activity.get...
把activity context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源:view hierachy, resource等。 这样如果context发生内存 泄露的话,就会泄露很多内存。 这里泄露的意思是gc没有办法回收activity的内存。 Leaking an entire activity是很容易的一件事。