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

Service에서 Activity의 핸들러 호출할때

0 추천
Intro2Activity.java

public Handler handler = new Handler(){
  @Override
  public void handleMessage(Message msg){
   switch (msg.what){
   case 1234: {
    Toast.makeText(Intro2Activity.this, "완료", 0).show();
    }
   default : {
     Toast.makeText(Intro2Activity.this, "완료", 0).show();
    }
    break;
   }
  }
 };

--------------------------------------------------------------------------------------
Service2.java

Message msg = Message.obtain(handler, 1234);
handler.sendMessage(msg);

위 소스처럼 해봤는데 반응이 없네요.

Intro2Activity를 실행할때 Service2.java 를 스타트하고,

Service에서는 10초마다 어떤 네트워크 작업이 실행되고 있습니다.

해당 네트워크 작업의 끝부분에서 Toast를 띄워주기위해 만든 소스인데

어플이 꺼진다든가 딱히 에러메세지가 발생하지는 않는데

Toast가 안뜨네요.

아예 구문이나 방식이 잘못된건가요?

 

개님의습성 (2,500 포인트) 님이 2013년 8월 22일 질문

1개의 답변

0 추천
서비스가 액티비티에 생성한 핸들러를 어떻게 참조하고 있죠?
Gradler (109,780 포인트) 님이 2013년 8월 22일 답변
저도 사실 책보면서 소스 짜다가 그 점이 궁금했어요.
근데 책에는 참조 방법이 안나오더라구요.
Service.java 파일 상단에 private Handler handler;
현재는 그냥 이렇게만 해두고 있습니다.
초기화도 하지 않은 변수를 사용하는데 컴파일 에러가 안난다는게 이상하군요
...