我想将应用程序上下文存储在静态成员中,例如this,因此我可以在任何地方访问它,共享首选项,资源等。
我的问题是上下文是否可以在应用程序生命周期内自行更改,因此存储的上下文将无法正常工作,我无法访问共享首选项等。
或者上下文是不可变的,所以我可以毫无疑问地使用它吗?
谢谢你的答案!
答案 0 :(得分:1)
应用程序上下文在应用程序生命周期内保持不变。
答案 1 :(得分:1)
在app的所有工作中,上下文是不可变的。并且您可以以静态方式使用它来获取资源,共享首选项等。
答案 2 :(得分:0)
当你看到这个post的接受答案时,你会发现这样做很好,但小心处理...
这种方法存在一些潜在的问题, 虽然在很多情况下(比如你的例子)它会很好用。
特别是在处理涉及GUI的任何事情时应该小心 这需要一个上下文。例如,如果您将应用程序Context传递给 LayoutInflator你会得到一个例外。一般来说,您的方法非常好: 在该Activity和Application中使用Activity的Context是一种很好的做法 传递超出Activity范围的上下文时的上下文,以避免内存泄漏。
答案 3 :(得分:0)
是的,您可以将它与共享偏好一起使用并获取资源等。
getApplicationContext()函数应该这样做。它是否可变是无关紧要的。