Android上下文是否可变?

时间:2012-11-25 18:00:27

标签: android

我想将应用程序上下文存储在静态成员中,例如this,因此我可以在任何地方访问它,共享首选项,资源等。

我的问题是上下文是否可以在应用程序生命周期内自行更改,因此存储的上下文将无法正常工作,我无法访问共享首选项等。

或者上下文是不可变的,所以我可以毫无疑问地使用它吗?

谢谢你的答案!

4 个答案:

答案 0 :(得分:1)

应用程序上下文在应用程序生命周期内保持不变。

答案 1 :(得分:1)

在app的所有工作中,上下文是不可变的。并且您可以以静态方式使用它来获取资源,共享首选项等。

答案 2 :(得分:0)

当你看到这个post的接受答案时,你会发现这样做很好,但小心处理...

  

这种方法存在一些潜在的问题,   虽然在很多情况下(比如你的例子)它会很好用。

     

特别是在处理涉及GUI的任何事情时应该小心   这需要一个上下文。例如,如果您将应用程序Context传递给   LayoutInflator你会得到一个例外。一般来说,您的方法非常好:   在该Activity和Application中使用Activity的Context是一种很好的做法   传递超出Activity范围的上下文时的上下文,以避免内存泄漏。

答案 3 :(得分:0)

是的,您可以将它与共享偏好一起使用并获取资源等。

getApplicationContext()函数应该这样做。它是否可变是无关紧要的。