안드로이드 개발 질문/답변
(글 수 45,052)
코드에서 위젯을 생성 시 TextView textvew1 = new TextView(this) this 즉 자기 자신 Activity 를 인자값으로 하여
위젯을 생성하는데요.. 위젯의 생성자를 보면 Context 입니다.
Activty 가 Context 하위 클래스 이므로 이렇게 생성하는 것이 가능하나
왜 자신(위젯)이 포함된 Activity 를 위젯 생성 시 전달하는 건가요?
위젯 생성 시 전달되는 Activity 에는 어떤 정보가 전달되는 것일까요?
느무느무 궁금합니다. 예상하자면 자신이 어떤 애플리 케이션에서 어떤 액티 비티 내에서 생성 됐다 뭐 이런 정보가 전달되는 것인가요?
속쉬원한 답변 부탁드립니다.
위젯을 생성하는데요.. 위젯의 생성자를 보면 Context 입니다.
Activty 가 Context 하위 클래스 이므로 이렇게 생성하는 것이 가능하나
왜 자신(위젯)이 포함된 Activity 를 위젯 생성 시 전달하는 건가요?
위젯 생성 시 전달되는 Activity 에는 어떤 정보가 전달되는 것일까요?
느무느무 궁금합니다. 예상하자면 자신이 어떤 애플리 케이션에서 어떤 액티 비티 내에서 생성 됐다 뭐 이런 정보가 전달되는 것인가요?
속쉬원한 답변 부탁드립니다.




Context 라는 것은 Application 의 기본 실행 정보들을 담고 있다고 생각하시면 됩니다.
보통 Application 또는 Activity 가 Android 의 기본 실행단위이기 때문에 두 곳 모두에 Context 를 가집니다.
Context 로 뭘 할수 있느냐... 리소스를 가져온다던지... 구체적인건 그냥 찾아보시고요.
TextView 생성시 this 를 넣는 것은 해당 Activity 의 Context 를 사용하겠다는 거고요.
이럴 경우 해당 Activity 가 메모리에서 해제될때 TextView 도 같이 해제됩니다. 즉 라이프 사이클을 공유하죠.
Application 의 Context 를 사용하면 Application 과 lifecycle 을 공유합니다.
우야뜬 요정도로 설명드리고요. 아래 내용이 메모리 릭과 관련된 내용인데요. Context 와 Activity 의 관계를 어느정도 설명하고 있습니다.
참고하세요~
http://developer.android.com/resources/articles/avoiding-memory-leaks.html