Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之間的區別

Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之間的區別

 

 : 知之爲知之,不知爲不知是知也!html

 

  • 使用this, 說明當前類是context的子類,通常是activity application等;

        this:表明當前,在Activity當中就是表明當前的Activity,換句話說就是Activity.this在Activity當中能夠縮寫爲this.android

        Activity.this的context 返回當前activity的上下文,屬於activity ,activity 摧毀他就摧毀app

 

  • 使用getApplicationContext 取得的是當前app所使用的application,這在AndroidManifest中惟一指定。意味着,在當前app的任意位置使用這個函數獲得的是同一個Context;

        getApplicationContext(): 返回應用的上下文,生命週期是整個應用,應用摧毀,它才摧毀。函數

 

  • 使用getContext獲取的是當前對象所在的Context, Context一般翻譯成上下文,我一般當成場景來理解。

 

  • getApplication():andorid 開發中共享全局數據;

 

  • getBaseContext() 返回由構造函數指定或setBaseContext()設置的上下文

 

咱們在平時的開發中,有時候可能會須要一些全局數據,來讓應用中得全部Activity和View都能訪問到,你們在遇到這種狀況時,可能首先會想到本身定義一個類,而後建立不少靜態成員,不過andorid已經爲咱們提供了這種狀況的解決方案:在Android中,有一個名爲Application的類,咱們能夠在Activity中使用getApplication(),方法來得到,它是表明咱們的應用程序的類,使用它能夠得到當前應用的主題,資源文件中的內容等,這個類更靈活的一個特性就是能夠被咱們繼承,來添加咱們本身的全局屬性。網站

 

參考:this

Android 中this、 getApplicationContext()、getApplication()之間的區別_夢之星辰-懷_新浪博客
http://blog.sina.com.cn/s/blog_a72ec20c0101coso.htmlspa

android 中 涉及到context的時候this和this.getApplictionContext的區別 - liuyun - ITeye技術網站
http://liuyun025.iteye.com/blog/1139970翻譯

相關文章
相關標籤/搜索