Context를 이용하는 시스템 메서드들,
항상 onCreate에 선언하라고 api에 나와있는데..
얘를들어 네트워크상태확인같은경우 (매 액티비티마다 적용한다면)
ConnectivityManager를 통해 객체생성을 하게되면
Context를 참조해야되는데,
이러한 메서드들은 항상 onCreate에서만 사용해야되니
재활용자체가 불가능한게 맞는거죠?ㅠ
액티비티마다 매번명시해야되는거죠?ㅠ
아즈라엘님 답변감사드립니다. 아즈라엘님 말씀대로 해보니 잘작동하고 있네요..^^
한가지 더 여쭙자면 이번기회를 통해서 context에 대해서 조금알아봤는데요~
메모리릭에대한 문제나, 기타이유때문에 activity context 보다는 application context를 이용하는편이
효율적이고 좋다고 하는데.. 그부분에 대해서 이해가 잘 안되더라구요.. 혹시 답변해주실수 있나요 ^^?
제 개인적인 생각으로는 액티비티별로 context를 사용할때 계속적으로 인스턴스를 생성해야되는데
(보통 초보자들이 사용하는 this가 아닌..)
별로 좋은방법이 아닐까..해서요 ..ㅎ
월요일부터 아즈라엘님의 도움덕분에 기분좋게 시작하게됬습니다. ^^ 정말 감사합니다
Context 는 현상태를 저장하고 있는 메모리 상태라 생각하시면 됩니다.
또한 시스템에 연결할때 권한이 있는데 MMU(http://recipes.egloos.com/5232056) 를 통해서 접근 제어도 합니다.
보통 한 어플내에 있으면 같은 컨텍스트를 사용하는데 안드로이드는 어플내에 타 어플의 제어가 유연하기 때문에
컨텍스트가 꼬이기 시작합니다.
그래서 Activity 컨텍스트를 사용하는게 되는건데요 .. 타 어플에서 내 어플을 호출 하거나
내 어플에서 타 어플의 내용을 사용할 일이 없다면 그냥 Application Context 를 사용해도 무난합니다.
위와 같은 상황은 나중에 Acitvity 호출할때 intent 를 통해서 데이터 주고 받는 경우와도 비슷한데요
그냥 같은 어플내에 있으면 static 맴버 변수 사용해서 주고 받을 수도 있는 경우로 대체해도 되듯이
비슷한 경우라 생각하시면 조금 이해가 빨라집니다.
아..그리고 아까 댓글을보니 전부해결한것처럼 보여서 다시정정합니다;
application conext를 통해서 어디서든 시스템에대한 제어가 가능해졌는데요.
테스트만한 단계에서 적은거라서.. 제가 본래 생각했던 참조까지는 구현을 못하겠더라구요..
네트워크 상태확인같이 시스템에대한 참조는 onCreate()에서만 해야되고, static으로 접근또한 되지 않도록 되어있더라구요.,.
어찌보면 당연한건데
xml 선언없이 intent로 접근해서 확인하고 토스트창띄우고 하는것까지 구현해봤는데
머..그렇게 하는게 더 복잡해지는 느낌이여서 결국은 그냥 원래잇던 소스내에서 해결했습니다...^^
돌아돌아서 제자리로 오긴했지만. 많이 배운듯하네요..ㅎ
더 좋은방법이나 해결방법을 알게되면 다시 댓글달겠습니다. ^^




Activity Context 가 아닌 Application Context 를 사용하면 가능한 일이 될거 같습니다.