在android中常常會(huì)遇到與 context有關(guān)的內(nèi)容,特寫下這篇blog,淺論一下context : 在語(yǔ)句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求傳遞的 參數(shù)就是一個(gè)context,在這里我們傳入的是this,那么這個(gè)this究竟指的是什么東東呢? 這里的this指的是Activity.this,是這個(gè)語(yǔ)句所在的Activity的this,是這個(gè)Activity 的上下文。網(wǎng)上有很多朋友在這里傳入this.getApplicationContext(),這是不對(duì)的。 AlertDialog對(duì)象是依賴于一個(gè)View的,而View是和一個(gè)Activity對(duì)應(yīng)的。 于是,這里涉及到一個(gè)生命周期的問(wèn)題,this.getApplicationContext()取的是這個(gè)應(yīng) 用程序的Context,Activity.this取的是這個(gè)Activity的Context,這兩者的生命周期是不同 的,前者的生命周期是整個(gè)應(yīng)用,后者的生命周期只是它所在的Activity。而AlertDialog應(yīng) 該是屬于一個(gè)Activity的,在Activity銷毀的時(shí)候它也就銷毀了,不會(huì)再存在;但是,如果傳 入this.getApplicationContext(),就表示它的生命周期是整個(gè)應(yīng)用程序,這顯然超過(guò)了它 的生命周期了。 所以,在這里我們只能使用Activity的this。