我是新到Android ...仍然混淆語境
最大一次我不得不面對的context
類有時候讓我迷惑。 在某些地方,它使用context
, 某處它被稱爲getApplicationContext()
,getContext()
,getBaseContext()
。
我試圖讓我從這個網站了解它, http://www.developer.android.com/,但它很難理解。
我是新到Android ...仍然混淆語境
最大一次我不得不面對的context
類有時候讓我迷惑。 在某些地方,它使用context
, 某處它被稱爲getApplicationContext()
,getContext()
,getBaseContext()
。
我試圖讓我從這個網站了解它, http://www.developer.android.com/,但它很難理解。
在Android上,Context用於許多操作,但主要用於加載和訪問資源。這就是爲什麼所有的小部件都會在其構造函數中接收一個Context參數。在常規的Android應用程序中,通常有兩種上下文,活動和應用程序。它通常是開發人員傳遞給需要Context的類和方法的第一個類:
您可以通過調用getApplicationContext(),getContext(),getBaseContext()或this(在activity類中)來獲取上下文。
典型上下文的用途:
創建新對象:創建新的視圖,適配器,聽衆:
TextView的電視=新的TextView(的getContext()); ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(),...);
訪問標準公共資源:像 LAYOUT_INFLATER_SERVICE,SharedPreferences服務:
context.getSystemService(LAYOUT_INFLATER_SERVICE)
getApplicationContext()getSharedPreferences(名,模式);
訪問組件可隱式:。對於內容提供商, 廣播,意圖
getApplicationContext()getContentResolver()查詢(URI,...);
您在使用上下文時,因爲maintaning它可能會導致內存泄漏
總之,爲了避免上下文相關的內存泄漏要小心,記住以下幾點: