public abstract class Context
extends Object
java.lang.Object
↳ android.content.Context
public class View
extends Object implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource
java.lang.Object
↳ android.view.View
Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.
애플리케이션 환경에 대한 전역정보 인터페이스입니다.
안드로이드 시스템에 의해 제공되는 추상클래스 입니다.
이것은 애플리케이션별 리소스 및 클래스에 액세스 할 수 있으며, 액티비티 활성, 브로드캐스팅 및 수신 등과 같은 애플리케이션 수준의 작업에 대한 호출도 허용합니다.
Application Context :
Application 자체의 생명주기 즉, life cycle에 영향을 받습니다.
getApplicationContext()
Activity.getApplicationContext()
getApplication()
Activity Context :
Activity life cycle에 따라 onDestroy()과 함께 사라지며, Activity를 다시 시작할때 새로운 context가 생성됩니다. Activity Context를 잘못 사용하면 Activity가 종료되더라도 참조가 유지되어, memory leak(메모리 누수)를 발생시킵니다.
getContext()
View.getContext()
XXXActivity.this
Android Application 내에 다수의 Activity가 존재합니다.
따라서, Activity는 Application의 클래스, 자원 및 정보에 접근할 수 있습니다.
https://developer.android.com/reference/android/content/Context
https://developer.android.com/reference/android/view/View
https://medium.com/swlh/context-and-memory-leaks-in-android-82a39ed33002