Android
2011. 7. 14. 23:18
간만에 포스팅을 합니다. 바쁜척하느라 매일 오긴오는데
와서 제 블로그를 제가 눈팅하는 그런..짓을 합니다 -_-;
무튼, Activity와 Context 는 비슷해 보이면서도 다릅니다. 저도 아직 두 가지 명확하게 설명을 할
수준은 못되지만, 명확한 개념을 알고싶으시면 조금만 수고를 하셔서 검색을 하시면
다른 훌륭하신분들의 글이 많이 올라와 있습니다.
먼저 Activity 는 안드로이드 어플리케이션의 가장 기본적인 블록으로 전체적으로 한 화면 이라고
보시면 됩니다. 한 화면의 View와 UI 를 뿌리고 관리하며 터치 등 사용자의 입력을 감지합니다.
한 화면이기 때문에 다음 화면으로 넘어가면 거기서 새로운 액티비티가 생성되고 관리하게 됩니다.
반면 Context는 핵심 부품같은 존재로 여러 액티비티의 리소스를 접근하거나 공유할 수 있게
해줍니다. 설명이 많이 부족하네요 이거 -_-..
현재 Activity와 Context를 얻어서 사용해야 할 때가 있습니다. 다이얼로그나 팝업등을 띄울 때인데요
팝업을 예로들면 어느 앱에 로그인을 하려는데 그 로그인창이 팝업창으로 되어 있다면 컴퓨터는
멍청해서 알아서 메인화면 위로 로그인창을 띄우지 못하고 코드상으로 꼭 메인화면 위에서 띄워라
라고 써줘야 합니다.
popupview = View.inflate(getApplicationContext(), R.layout.sidepopup, null);
이게 그 예인데요 팝업뷰에 파라미터로 Context, int, ViewGroup 이 들어갑니다.
다른거는 넘어가고 Context를 보면 getApplicationContext() 이게 현재 화면의 context를
지정하는 것으로, 저 popupview는 이제 메인화면 위에 뜬다는 소리입니다. 메인화면의
Context를 받았기 때문이죠.
안드로이드 입문하는 소스들을 보면 대부분 한 클래스에서 모든걸 끝내어 기능만 알아보고 넘어가는
식이 많은데, 이제 그보다 큰 것을 하다보면 위와같이 현재 화면, 또는 현재 클래스에서 모든
작업을 하기란 불가능합니다.
Activity를 예로들어보면 많이 보시는 간단한 Toast를 봐도
세개의 파라미터 중에 첫번째가 액티비티 입니다. 짧은 예제에는 여기에 대부분 this나
클래스명.this 이런식으로 사용하시는데요. 이게 이 토스트가 뜰 화면을 지정하는 것입니다.
위에 예제의 경우 액티비티가 있는 클래스가 아닌 곳에서 띄우려니, 띄울곳에서 액티비티를 얻어
넘겨주어 그 액티비티를 받아 사용하는 것입니다. 그럼 넘겨준 액티비티에서 뜨겠죠?
이와같이 넘기거나 사용할 때 현재 액티비티나 Context를 받아야합니다. 받는 방법은
Activity 는
Activity act;
act = 현재클래스명.this;이고
Context는
Context mContext;
mContext = getApplicationContext();
이런식으로 담아두고, 이 변수로 다른 클래스에 넘기기도하고 가져다 쓰기도 하고 그러시면 됩니다
솔직히 100% 아는 내용이 아니라 횡설수설했는데.. 암튼 도움이되셨길 바랍니다.
'Android' 카테고리의 다른 글
안드로이드] 팝업뷰 보다 깔끔한 팝업모양 액티비티 만들기 (14) | 2011.07.19 |
---|---|
안드로이드] 팝업뷰 띄우기 (0) | 2011.07.18 |
안드로이드] 현재 액티비티, 다른 액티비티 종료하기 (15) | 2011.06.27 |
안드로이드] 리스트 알아보기 (0) | 2011.06.25 |
안드로이드] 안드로이드 액티비티의 라이프 사이클 (0) | 2011.06.02 |