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

최상위 엑티비티 구현시 왜 핸들러를 꼭 써야 실행하나요?

0 추천

현재 중소기업에서 개발자 인턴으로 근무하는 중입니다.

앱을 만드는데 전화화면을 덮을 액티비티를 구현하고 있었습니다.

브로드캐스트리시버를 통해 전화가 오고 받고를 알고 그 안에 인텐트로

전화다이얼 화면을 덮을 화면을 구현하였는데요.

그냥

// Intent i = new Intent(mContext, call_activity.class);
// i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
// i.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
// mContext.startActivity(i);
 
이런식으로만 구현하니 실행되지 않다가 핸들러로 1초정도의 딜레이를 주었더니 실행가능합니다.
왜 꼭 핸들러를 사용 해야만 최상위 액티비티가 바뀌는지 궁금합니다. 답변부탁드려요ㅠㅠ
익명사용자 님이 2013년 12월 23일 질문

1개의 답변

+1 추천
이유는 간단하죠.

님께서 등록한 리시버에 먼저 이벤트가 들어와서 입니다.

이벤트가 먼저 들어오니 전화화면이 나오기 전에 님께서 구현하신 액티비티를 호출하고

그 후에 전화 화면 액티비티가 호출되니 화면상 변화가 없는 것 처럼 보이겠죠.
원조안드로이드 (58,190 포인트) 님이 2013년 12월 24일 답변
...