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应该放在方法的参数里,然后由调用方法的类来提供。