마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 메모리 Context 관련 도와주세요

0 추천
안녕하세요 안드로이드 Context 사용에대해 잘 몰라 질문드립니다.

간단한 답변이라도 좋으니 많은 의견 주시면 감사하겠습니다.

 

1. 먼저 기존에 Context context = this; 이렇게만 사용하였는데 메모리 문제가 생길수 있다하여 아래부분을 context.getApplicationContext()로 변경하였는데 맞는지가 궁금합니다.

1). Toast

변경전 Toast.makeText(context, "Toast", Toast.LENGTH_SHORT);
변경후 Toast.makeText(context.getApplicationContext(), "Toast", Toast.LENGTH_SHORT);

2). Intent

변경전 intent = new Intent(context, AAA.class);
          context.startActivity(intent);

변경후 intent = new Intent(context.getApplicationContext(), AAA.class);
          context.getApplicationContext().startActivity(intent);

3). LayoutInflater

변경전
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.main, this, true);
변경후
LayoutInflater inflater = (LayoutInflater) context.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.main, this, true);

이렇게 변경해서 사용하고있습니다.

2. 이렇게 getApplicationContext()로 사용할 수 있는 부분은 전부다 변경하는건가요?
아니라면 어떤 부분을 변경해줘야 효율이 좋나요?

3. getApplicationContext() 관련 설명도 주시면 감사하겠습니다

 

많은 도움 부탁드립니다. 감사합니다.
bellfe0402 (1,770 포인트) 님이 2015년 9월 9일 질문

1개의 답변

0 추천

제 설명보다 아래 링크의 글이 님의 질문에 근본적인 답이 될것 같습니다. 해당글의 댓글과 링크도 함께 보면 더 좋을 것 같습니다. http://www.androidpub.com/2294023

제 주관적 생각은 Activity 안에서의 작업이라면 굳이 별도의 참조를 저장하나가 getApplicationContext()함수를 호출할 필요없이 그냥 this예약어로 접근하면 될것 같은데요. 어차피 Activity가  Context로부터 파생되어 있으니까요.

별찌 (220 포인트) 님이 2015년 9월 9일 답변
별찌님이 2015년 9월 9일 수정
...