3

我想将应用程序上下文存储在一个静态成员中,就像这样,所以我可以在任何地方访问它、共享首选项、资源等。

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

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

谢谢你的回答!

4

4 回答 4

1

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

于 2012-11-25T18:02:15.387 回答
1

Context is immutable during all work of app. And you can use it in static way to get resources, shared preferences, etc.

于 2012-11-25T18:20:17.880 回答
0

当您查看此帖子的已接受答案时,您会发现这样做是可以的,但要小心处理...

这种方法有几个潜在的问题,尽管在很多情况下(比如你的例子)它会很好地工作。

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

于 2012-11-25T18:10:40.983 回答
0

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

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

于 2012-11-25T18:31:11.787 回答