當前位置:編程學習大全網 - 網站源碼 - android中的context和this的區別

android中的context和this的區別

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

context指的上下文環境

this指的是本類的對象,

壹般情況:有context但是不壹定有this,有this壹定有context環境

  • 上一篇:釣鯉魚的特效藥?
  • 下一篇:王大偉中小學生家庭教育之安全教育直播在線觀看
  • copyright 2024編程學習大全網