1. 程式人生 > >Android的Context簡介

Android的Context簡介

           Context字面意思上下文,位於framework package的android.content.Context中,很多方法需要通過 Context才能識別呼叫者的例項,比如說Toast的第一個引數就是Context,一般在Activity中我們直接用this代替,代表呼叫者的 例項為Activity,而到了一個button的onClick(View view)等方法時,我們用this時就會報錯,所以我們可能使用ActivityName.this來解決,主要原因是因為實現Context的類主要有Android特有的幾個模型,Activity、Service以及BroadcastReceiver。

兩種型別的Context在android中context可以作很多操作,但是最主要的功能是載入和訪問資源。在android中有兩種context,一種是 application context,一種是activity context,通常我們在各種類和方法間傳遞的是activity context。比如一個activity的onCreate,如下:
protected void onCreate(Bundle state) {
        super.onCreate(state);

        TextView label = new TextView(this); //傳遞context給view control
        label.setText("Leaks are bad");

        setContentView(label);
}
把activity context傳遞給view,意味著view擁有一個指向activity的引用,進而引用activity佔有的資源:view hierachy, resource等。