一、Context基本概念
这是一个关于应用程序环境的全局信息接口。这是一个抽象类,实现类(这里指的是ContextIml类)是由系统提供的。允许获取应用级别的资源和类,也可以调用应用级别的操作,比如启动Activity,broadcast,接受intent等等。
二、Context的用法
对应Context中的用法,最多的应该是得到当前的上下文了,怎么获取到Context呢,比如Activity.this,getContext,getActivity,还有getApplicationContext了。其中Activity.this是获取到Activity中的Context,getContext和getActivity是Fragment中使用的,最终返回的还是Activity中的Context,而getApplicationContext返回的是Application中的Context,我们知道application的生命周期一般是比Activity生命周期长,为了防止可能会产生的内存泄露,能用application的尽量用它,否则用Activity。那么实际应用场景怎么区别使用呢
在Dialog和Activity跳转中使用Activity中的Cotenxt,在Dialog中构造方法中传入Activity.this, 因为我们知道Dialog其实是依附在Activity中的,当Activity销毁时,Dialog存在就么有意义了,因此这里只能传入当前Activity.this。当然我们使用自定义Dialog时,可能会遇到can not start a load for a
destroy activityde 的非法参数异常,一般是因为其宿主(也就是当前Activity)销毁了,这个动作无法执行啦。
本文详细解析了Android中Context的概念,区分了不同类型的Context如Activity和Application的Context,并指导如何在实际场景中选择合适的Context使用,避免内存泄漏。
2438

被折叠的 条评论
为什么被折叠?



