: 知之為知之,不知為不知是知也!
- 使用this, 說明當前類是context的子類,一般是activity application等;
this:代表當前,在Activity當中就是代表當前的Activity,換句話說就是Activity.this在Activity當中可以縮寫為this.
Activity.this的context 返回當前activity的上下文,屬於activity ,activity 摧毀他就摧毀
- 使用getApplicationContext 取得的是當前app所使用的application,這在AndroidManifest中唯一指定。意味着,在當前app的任意位置使用這個函數得到的是同一個Context;
getApplicationContext(): 返回應用的上下文,生命周期是整個應用,應用摧毀,它才摧毀。
- 使用getContext獲取的是當前對象所在的Context, Context通常翻譯成上下文,我通常當成場景來理解。
- getApplication():andorid 開發中共享全局數據;
- getBaseContext() 返回由構造函數指定或setBaseContext()設置的上下文
我們在平時的開發中,有時候可能會需要一些全局數據,來讓應用中得所有Activity和View都能訪問到,大家在遇到這種情況時,可能首先會想到自己定義一個類,然后創建很多靜態成員,不過andorid已經為我們提供了這種情況的解決方案:在Android中,有一個名為Application的類,我們可以在Activity中使用getApplication(),方法來獲得,它是代表我們的應用程序的類,使用它可以獲得當前應用的主題,資源文件中的內容等,這個類更靈活的一個特性就是可以被我們繼承,來添加我們自己的全局屬性。
參考:
Android 中this、 getApplicationContext()、getApplication()之間的區別_夢之星辰-懷_新浪博客
http://blog.sina.com.cn/s/blog_a72ec20c0101coso.html
android 中 涉及到context的時候this和this.getApplictionContext的區別 - liuyun - ITeye技術網站
http://liuyun025.iteye.com/blog/1139970