安卓开发:获取Context

2017-03-24 00:22


写安卓的时候常常发现正在调用的方法需要Context。Context“上下文”不用想象得多神秘,它也不过是java的一个类。它里面包含了一些环境信息,很多方法需要这些信息。

怎么获取Context呢?

Activity本身就是一个Context。如果在Activity内部需要Context,直接使用this就可以。

Fragment可以获取它所attach的Activity作为Context,应该在attach之后获取。

所有的View都有Context引用,通过方法getContext()获取。所以如果有View对象,就可以使用它的Context。

​如果不属于以上几种条件,那么就要具体情况具体分析。通常来说,一个方法需要Context,必定是有原因的。顺着这个原因找上去一般就能找到合适的解决方法。比如一个八竿子打不着的类里的某个方法里需要Context,怎么也找不到谁能提供,那么通常这说明这个方法设计得有问题,Context应该放在方法的参数里,然后由调用方法的类来提供。