[Android技術問題] how to anywhere access Cotext
(小K, 2012-01-10 16:07)
1樓
Hello Jaery,
請要如何在任何地方都可以得Context呢,如我寫一個Class,但這Class都沒有extends任何android的四大元件,但又想在這個Class用Context的東西,要如何做呢?
Thank you
小K
(Jarey, 2012-01-12 02:05)
3樓
首先你必須先清濋了解Context是做什麼用,生命週期為何、在Android框架中的角色為何?
Context必須要避免被長期佔用,Android的元件各有其生命週期,你把Context佔住,(像是
被Static變數所引用住),這將會造成Android生命週期無法發揮其效果,記憶體根本無法被
釋放,會造成Static memory leak with Context
以下是相關的說明:
http://stackoverflow.com/questions/8421114/static-memory-leak-with-context
若要長期佔用的Context,應該改使用Application Context(你可以去Google一下Application Context 就會找到
許多資料了),所以說Context不是讓你為求方便去把它當成Global Variable到處讓人引用,這會有問題的
由其是你有背景Service或是Thread之間在使用時卻使用其它元件的Context去操作,更容易會有問題發生(例如想
發廣播卻發不出去).
(小K, 2012-01-12 17:01)
4樓
Hello Jarey,
Thank you
I see
小K