2012-11-25 17 views
3

我想將應用程序上下文存儲在靜態成員中,如this,這樣我就可以在任何地方訪問它,共享首選項,資源等。Android上下文是否可變?

我的問題是上下文是否可以在應用生命週期中改變自己,所以存儲的上下文不會以適當的方式工作,我無法訪問共享偏好等

或者是不可變的背景下,所以我可以毫無疑問地使用它?

謝謝你的答案!

+1

將上下文存儲在靜態變量中很好。確保你使用getApplicationContext()來做到這一點。這與它是否可變無關。 –

+0

這聽起來很棒。非常感謝你:) – JaMic

回答

1

應用程序上下文在應用程序生命週期中保持不變。

+0

嘿,downvoter - 介意分享你對這個問題的知識嗎? –

0

當你看這個post的接受的答案,你會發現,這是確定要做到這一點,但小心輕放...

有一對夫婦的這種方法潛在的問題, 儘管在很多情況下(比如你的例子),它會運行良好。

特別是在處理任何涉及需要Context的GUI 時,您應該小心。例如,如果您將應用程序上下文傳遞到 LayoutInflator中,您將收到一個異常。一般來說,您的方法非常好: 在活動範圍內傳遞上下文以避免內存泄漏時,最好在該活動中使用活動的上下文,並在應用程序中使用上下文。

1

上下文在app的所有工作中都是不可變的。你可以用它在靜態的方式來獲得資源,共享偏好等

0

是的,你可以用共享偏好使用它,並獲得資源等

getApplicationContext()函數應該這樣做。它的可變性應該沒有關係。

相關問題