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

Application 클래스 onCreate() 내에서

0 추천
Application 클래스 onCreate() 내에서

DisplayMetrics outMetrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(outMetrics);

호출하려면 어떻게하면되나요?

Application 에서 Activity 로 접근이 안되나요?
참참참 (3,100 포인트) 님이 2015년 2월 8일 질문

3개의 답변

0 추천

상속을 말씀하시는건가요?

public class MainActivity extends Activity 
 
클래스가 액티비티를 상속받으면, 쓸 수 있습니다.
보이저 (1,160 포인트) 님이 2015년 2월 8일 답변
윈도우 매니저가 액티비티를 상속받아야 쓸 수 있는것도 아닌데

혹시 윈도우 매니저 객체를 얻어올 때 context때문에 문제가 생기는건가요?

뭐가 문제인지 정확히 모르겠습니다.
public class GlobalApp extends Application {

Application 클래스를 상속받은 클래스의 onCreate() 내에서
코딩하려구하니 getWindowManager() 가 안구해집니다
윈도우 매니저를 만드실려면,

WindowManager windowManager = (WindowManager)getSystemService(WINDOW_SERVICE);

이런식으로 선언할텐데 getSystemService를 사용하려면, activity를 상속받은 클래스의 context를 가져와서 쓰거나, activity를 상속받은 곳에서 선언해야 할겁니다.

제가 문제를 정확히 짚은건지는 잘 모르겠습니다만 context에 대해 찾아보시면 해결하실 수 있을 것 같습니다. 아니라면 다시 답변주세요
0 추천
저저...답변하는 사람 헤메고...모르면 아예 답을 안하는게 업계에 도움주는 겁니다.

가만히 있으면 중간간다고 하죠.

당사자는 감정적으로는 자원봉사한다는 의도지만 결과가 도움이 안되면 가만히 있는게 도와주는 겁니다.

(즉 문제를 이해못하는 시점에서 이미 답을 할 수 없단 말)

 

정답은,

getBaseContext(), getApplicationContext()를 참고할 것.
익명사용자 님이 2015년 2월 8일 답변
0 추천
getWindowManager() 는 기본적으로 Activity 아래에 있는 함수이지만,

윗분말씀대로 getBaseContext() 등을 이용하여

Context로도 접근이 가능합니다.

 
더하자면,
Application Class는 Activity보다 먼저 생성이 되기 때문에

Activity에서 Application Class 의 onCreate단에서 Activity 자신의 객체를 넘겨준다거나 할수는 없지요
안드로이드로우 (15,740 포인트) 님이 2015년 2월 9일 답변
안드로이드로우님이 2015년 2월 9일 수정
...